2010-03-07 29 views
9

MOV es probablemente la primera instrucción que todos aprenden mientras aprenden ASM.MOV src dest (o) MOV dest src?

Hace un momento me encontré con un libro Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona que dice:

alt text http://i.imagehost.org/0897/mov.gif

pero he aprendido que es MOV dest, src. Es como "Cargar dest con src". Incluso Wiki dice lo mismo.

No digo que el autor esté equivocado. Sé que él tiene razón. ¿Pero qué me estoy perdiendo aquí?

btw .. él está utilizando GCC as para ensamblar estas instrucciones. Pero eso no debería cambiar la sintaxis de la instrucción ¿verdad?

+0

debería haber leído el prefacio y el primero párrafo del capítulo 1. me saltamos ellos. :( – claws

Respuesta

27

mov dest, src se llama Intel sintaxis.

mov src, dest se llama AT & T sintaxis.

El ensamblador GNU utiliza la sintaxis T de AT &, todos los demás ensambladores x86 que conozco usan la sintaxis Intel. Puede leer sobre las diferencias on wikipedia.

+10

Algunas personas sólo quieren ver el mundo arder. – Paschalis

+0

Tenga en cuenta que el ensamblador GNU utiliza AT & T default_ _by sintaxis, no incondicionalmente. puede cambiar a la sintaxis de Intel usando '.intel_syntax noprefix' Directiva. – Ruslan

1

Existen dos tipos distintos de sintaxis de lenguaje ensamblador: Intel y AT & T sintaxis. Puede encontrar una comparación de ambos en Wikipedia's assembly language page.

Es probable que su libro utiliza la sintaxis AT & T, donde el operando fuente se presenta ante el destino.

6

Sí, como el uso/gas en & T sintaxis que utiliza el src orden, dest. MASM, TASM, NASM, etc., todos utilizan el orden 'dest, src". Si llega el caso, AT & sintaxis T no encaja muy bien con los procesadores de Intel, y (al menos OMI) es un desastre casi ilegible. Ej movzx sale particularmente malo.

+0

"lío ilegible" más o menos lo clava. –

Cuestiones relacionadas