Sintaxis AT&T
- Hay que colocar el prefijo % a los registros.
- En las instrucciones de dos operandos, el primer registro es el de origen y el segundo es el de destino (al revés que en Intel).
- Se debe especificar el tamaño de los operandos con b(byte) w(word) y l(double word)
- Para especificar direccionamiento inmediato de datos se usa el prefijo $ si no se tomará como direccionamiento directo de memoria.
- Para especificar direccionamiento indirecto de memoria se usa paréntesis.
Por ejemplo:
movl %ebx $10La l después de mov significa que la operación es de 32bits, antes del registro ebx se coloca % y antes del numero 10h se coloca $
En Linux tenemos varios ensambladores, el más utilizado es GAS(GNU Assembler) que ya lo traen la mayoría de distribuciones.
Si no quisiéramos aprender la sintaxis de AT&T hay otras opciones, una es utilizar el ensamblador NASM pero es más recomendable usar GAS y por medio de la directiva
.intel_syntax
podremos escribir con la sintaxis de Intel.Recomiendo la lectura del siguiente articulo en IMB para comprender mejor las diferencias entre la sintaxis de Intel y la de AT&T.
3 comentarios:
Que bueno q escribas de esto vos!! taaaal vez me sirva jaja no he hecho nada d eso
Es importante conocer las diferencias ;)
Claro, o por lo menos saber que existe otra sintaxis diferente a la de Intel.
Publicar un comentario