Langage assembleur, signification movl $0,%eax
Résolu
Nikola18
-
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 :)
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
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
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 !