Páginas: [1]
|
 |
|
Autor
|
Tema: ASM Syntax (Leído 342 veces)
|
XRoot
Desconectado
Mensajes: 11
It's my Life!
|
Hola, actualmente me decidí a entrarle al Assembly x86, pero tengo una gran duda:
La syntax de Intel es la que estoy aprendiendo, pero, ¿Que hay con la de AT&T? o sea, es parecida o algo? hace unos dias me compilé el kernel, miré unos archivos *.S (que es la extensión de los archivos de assembly en Linux) que tenian comentarios como los de mi lenguaje favorito (C) y usaban preprocesador como en mi lenguaje favorito (C). El lenguaje fue creado en los laboratorios Bell de AT&T. A lo que voy, la syntax de AT&T de ASM es similar a la de C?
Bye, XRoot
|
|
|
|
|
En línea
|
|
|
|
Rozor
Desconectado
Mensajes: 249
As I Walk Through The Valley Of The Shadow Of Dead
|
Aver has liado un poco la pregunta, te voy a responder y si no te queda aclarada la duda dilo.
Asm AT tiene una sintasix diferente a la de x86 , algunas cosillas com los % en los registros algunas instrucciones etc...
DevCpp ( GCC MINW ) usa como inline assembler ASM AT. Y Visual C 6 por ejemplo usa ASM x86.
|
|
|
|
|
En línea
|
Suck my Dick!!!
|
|
|
XRoot
Desconectado
Mensajes: 11
It's my Life!
|
Bueno, si es cierto, en los registros usaba %, entonces si es la syntax de AT&T Gracias
|
|
|
|
|
En línea
|
|
|
|
SaXo
Desconectado
Mensajes: 123
|
Hola, La sintaxis de intel y at&t son diferentes pero valen para el mismo tipo de arquitectura de procesadores con un conjunto de instrucciones complejo (o extendido) vamos, los x86 de toda la vida. Quizás lo que mas se puede destacar de la sintaxis de at&t es que usan % delante de los registros, los memotécnicos utilizan los sufijos b,w y l para indicar los bits en los que se esta programando. Los operandos cambian el orden con respecto a la sintaxis de Intel, los operandos inmediatos llevan prefijo $ y las indirecciones se hacen con parentesis. Dices que se parece a C... bueno, es común que en sistemas como linux se usen funciones de glib para el código en ensamblador como podría ser usar printf u otra de sus funciones. También es común embeber el código asm dentro de código C pero no se parecen entre ellos ni en el blanco de los ojos. Te pongo aquí uno de mis ejemplos sencillos de cuando aprendía la sintaxis de at&t para que puedas apreciar las diferencias. Este ejemplo usa printf de gblic para imprimir los valores por pantalla en vez de realizar una llamada al sistema. .data pfmt: .string "%d\n"
x: .int 8 y: .int 3
A1: .int 0
.text .global main
main: movl x,%eax subl y,%eax movl %eax,A1 pushl A1 pushl $pfmt call printf addl $8,%esp jmp end end: ret
Te recomiendo la lectura de esta "guia" sobre el ensamblador de at&t. Cuenta las mismas cosas que yo te explico aquí y algunas cosillas más. http://bulma.net/impresion.phtml?nIdNoticia=941
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|