MOV src dest (ou) MOV dest src?
Question
MOV est probablement le premier tout le monde apprend l'instruction tout en apprenant ASM.
En ce moment, je rencontrais un livre programmation en langage assembleur GNU / Linux pour IA32 Architectures par Rajat Moona qui dit:
texte alt http://i.imagehost.org/0897/mov.gif
Mais j'ai appris qu'il est MOV dest, src
. Son comme « dest
de charge avec src
». Même Wiki dit la même chose.
Je ne dis pas que l'auteur est erroné. Je sais qu'il a raison. Mais qu'est-ce que je manque ici?
btw .. il utilise le as
de GCC pour assembler ces instructions. Mais cela ne devrait pas changer le droit de la syntaxe d'instruction?
La solution
mov dest, src
est appelée syntaxe Intel .
mov src, dest
est appelé AT & T syntaxe .
assembleurs UNIX, y compris l'assembleur GNU utilise la syntaxe AT & T, tous les autres assembleurs x86 que je connais utilise la syntaxe Intel. Vous pouvez lire sur les différences sur wikipedia .
Autres conseils
Oui, comme / utilisation de gaz syntaxe AT & T qui utilise l'ordre src, dest. MASM, TASM, MSNA utilisent tous l'ordre « dest, src ». Il se trouve, AT & T syntaxe ne correspond pas très bien avec les processeurs Intel, et (au moins l'OMI) est un gâchis presque illisible. Par exemple, movzx
sort particulièrement mauvaise.
Il existe deux types distincts de syntaxe de langage assembleur - Intel et AT & T syntaxe. Vous trouverez une comparaison des deux page langage assembleur de Wikipédia .
Les chances sont de votre livre utilise la syntaxe AT & T, où l'opérande source vient avant la destination.