Assembleur x86

Bonjour,
je ne comprend pas cette directive :
L1 db "w","o","r","d",o
Pourquoi se termine-t-elle par o?
definit-elle 4 ou 5 octets?
merci
Configuration: Windows Vista
Firefox 2.0.0.14

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Le 0 (zéro) final correspond au terminateur d'une chaîne de caractère C.
    Je suppose que ta ligne est extraite d'un module qui sera asssemblé pouur éventuellement être linké avec un programme en C.
    voir par exemple :
    https://www.commentcamarche.net/contents/118-langage-c-les-chaines-de-caracteres
    Johan
    1. salut johan,
      en fait je n'ai aucune connaissance en c, je programme plutôt en java, suis-je d'abord oubligé de lire le c avant de me lancer dans les assembleur?
    2. Modérateur
      @gilles81Salut,

      Non ce n'est pas necessaire, d'ailleurs ce sont des langages de nature très différentes.

      Mais pour en revenir aux chaines de caractères, il y a plusieurs standards pour définir une fin de chaine de caractère, le 0 est utilisé en C et il est majoritairement adopté un peu partout.
    3. @gilles81slt
      g étudier le langage assembleur dans un module l'anné derniere ce n'été pas mon langage préféré mais bon je sais que le 0 ne correspond pas au caractére de fin de chaine car le caractére de fin de chaine en ASSEMBLEUR EST "$" voila donc soi le 0 est un caracétre comme "w" de votre chaine implique erreur de syntaxe
    4. Modérateur
      @bibiyainfoSalut,

      Ca c'est encore un autre convention. Ca pose un problème quand tu veux utiliser le caractère dollard par exemple.