Langage assembleur, signification movl $0,%eax

Résolu
Nikola18 -  
 Nikola18 -
Bonjour,

Je m'initie au langage machine depuis peu, et je ne comprend pas trop que fait cette ligne: (je sais, ça doit être plus que basique, mais bon...)

movl $0,%eax

Est ce qu'elle attribue la valeur 0 au registre eax ? On m'a dit que non, mais j'ai pas compris les explications... Pouvez vous m'aidez s'il vous plaît ?

Merci d'avance :)

3 réponses

  1. kyon0043 Messages postés 822 Statut Membre 329
     
    Je ne suis pas un expert en assembleur, mais movl $0 , %eax devrait mettre la valeur 0 dans le registre eax (le remettre a 0x00000000). Par contre, si tu avait movl $0, (%eax), cela mettrai la valeur 0 en mémoire à l'adresse précédemment contenue dans le registre eax.
    Par exemple, si tu fait
    movl $0x400, %eax
    movl %0x200, (%eax)

    Cela signifie que tu aura mis la valeur 0x200 dans la mémoire de eax à l'adresse 0x400
    2
    1. Nikola18
       
      D'accord cette fois j'ai bien compris :)
      Merci beaucoup pour ta réponse !
      0
    2. kyon0043 Messages postés 822 Statut Membre 329
       
      de rien
      0
  2. jeannets Messages postés 28402 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 6 603
     
    Bonsoir,

    Normalement, c'est écrit ainsi movl $0, %eax.... il y a un espace. C'est peut etre ça l'erreur.

    Mais pour moi, c'est bien une mise à zéro de eax, c'est généralement ce qu'on fait juste avant une boucle.

    Ceci dit, il peut y avoir des finesses selon le contexte..
    1
    1. Nikola18
       
      D'accord, je vois l'idée, merci :)
      0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    • movl $0, %eax

    est l'équivalent de l'instruction dans la syntaxe GNU/gas de
    • mov eax, 0

    C'est-à-dire placer la constante immédiate 0 dans le registre eax
    Si tu veux des informations concernant la syntaxe GNU de l'assembleur de la famille I386, regarde par exemple:
    Introduction to Linux Intel Assembly Language
    Gates gave ^W  sold  you the windows.
    GNU gave us the whole house.(Alexandrin)
    0
    1. Nikola18
       
      D'accord, je vais regarder le site, merci :)
      0