Langage assembleur, signification movl $0,%eax
Résolu
Nikola18
-
Nikola18 -
Nikola18 -
3 réponses
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
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
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..
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..
- 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)
Merci beaucoup pour ta réponse !