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

kyon0043 Messages postés 605 Date d'inscription   Statut Membre Dernière intervention   326
 
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
Nikola18
 
D'accord cette fois j'ai bien compris :)
Merci beaucoup pour ta réponse !
0
kyon0043 Messages postés 605 Date d'inscription   Statut Membre Dernière intervention   326
 
de rien
0
jeannets Messages postés 28208 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 5 979
 
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
Nikola18
 
D'accord, je vois l'idée, merci :)
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
  • 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
Nikola18
 
D'accord, je vais regarder le site, merci :)
0