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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top