GNU/Linux >> Tutoriales Linux >  >> Linux

Limitaciones de la sintaxis de ensamblaje de Intel en comparación con AT&T

Realmente no hay ventaja para uno sobre el otro. Sin embargo, estoy de acuerdo en que la sintaxis de Intel es mucha más fácil de leer. Tenga en cuenta que, AFAIK, todas las herramientas GNU también tienen la opción de usar la sintaxis Intel.

Parece que puedes hacer que GDB use la sintaxis de Intel con esto:

set disassembly-flavor intel

GCC puede hacer sintaxis de Intel con -masm=intel .


La sintaxis principal del ensamblador GNU (GAS) es AT&T. La sintaxis de Intel es una adición relativamente nueva. El ensamblaje x86 en el kernel de Linux está en la sintaxis de AT&T. En el mundo de Linux, es la sintaxis común. En el mundo de MS, la sintaxis de Intel es más común.

Personalmente, odio la sintaxis de AT&T . Hay muchos ensambladores gratuitos (NASM, YASM) junto con GAS que también son compatibles con la sintaxis de Intel, por lo que no habrá ningún problema con la sintaxis de Intel en Linux.

Más allá de eso, es solo una diferencia sintáctica. El resultado de ambos será el mismo código de máquina x86.


Realmente no hay ventaja para uno sobre el otro. Sin embargo, no estoy de acuerdo con que la sintaxis de Intel sea mucho más fácil de leer, porque personalmente odio la sintaxis de Intel . Tenga en cuenta que, AFAIK, todas las herramientas GNU también tienen la opción de usar la sintaxis Intel.

at&t noprefix                   intel
mov eax, -4(ebp,edx,4)          mov DWORD PTR[-4 +ebp +edx *4], eax
mov eax, -4(ebp)                mov DWORD PTR[-4 +ebp], eax
mov edx, (ecx)                  mov DWORD PTR[ecx], edx
lea (   ,eax,4), eax            lea eax, DWORD PTR[8 + eax*4]
lea (eax,eax,2), eax            lea eax, DWORD PTR[eax*2+eax]

...y se vuelve más complicado con instrucciones más complejas

'Nuff dijo.

PD:Esta respuesta existe principalmente por el motivo de resaltar (en mi humilde opinión) las debilidades en algunas otras respuestas, que en realidad no son respuestas, sino opiniones. Y, por supuesto, esta respuesta en realidad es solo mi humilde opinión.

PPS:no odio la sintaxis de Intel, simplemente no me importa.


Linux
  1. Verificando la sintaxis de PHP.

  2. Cómo verificar la sintaxis de sudoers

  3. ¿Menos resaltado de comandos y sintaxis?

  4. Limitaciones de tamaño de correo electrónico

  5. Limitaciones de la imagen del servidor en la nube

Personalice un Intel NUC con Linux

Sintaxis y ejemplos de declaraciones de caso Bash

Sintaxis de Bash If Else con ejemplos

Habilitar resaltado de sintaxis en Vim

Sintaxis adecuada para el comando id -r

sintaxis de ls --hide=y ls --ignore=