elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  sintaxis intel y AT&T
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: sintaxis intel y AT&T  (Leído 14,621 veces)
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
sintaxis intel y AT&T
« en: 4 Septiembre 2009, 13:31 pm »

hola estoy empezando con el esamblador y me gustaria saber si con el compilador gcc es posible que al compilar codigo en C me genere el codigo ensamblador en sintaxis intel en vez de AT&T cuando uso la opcion -S. Tambien quisiera saber que diferencias hay entre las dos sintaxis y cual es mas recomendable aprender. Por cierto ¿es muy diferente el ensamblador de 32 bits y el de 64?

gracias de antemano


En línea

karmany
Colaborador
***
Desconectado Desconectado

Mensajes: 1.615


Sueñas que sueñas


Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #1 en: 8 Septiembre 2009, 18:23 pm »

La sintaxis intel o la AT&T dependen normalmente del compilador que uses y de las opciones que ellos tengan.

Algunos depuradores te permiten elegir una u otra.

La sintaxis intel es utilizada por ejemplo por Microsoft y normalmente es relacionada con Windows. La sintaxis AT&T es relacionada con Linux. Cada persona tiene su opinión al respecto, pero para mí tienen bastantes diferencias...de AT&T conozco bastante poco.

Mira acabo de echar un vistazo a un libro que tengo de programación en asm y estoy viendo que con gcc es posible usar la sintaxis intel. No tengo ni idea de cómo se debe configurar pero la sintaxis que estoy leyendo está en intel.

Respecto al ensamblador de 32 y de 64 bits pues tienen sus diferencias, sólo piensa que los registros tienen un tamaño doble. Piensa también que si programas en 32 bits, tu programa servirá también para ordenadores a 64 pero no al contrario.


En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #2 en: 9 Septiembre 2009, 13:58 pm »

En primer lugar gracias por responder :D
He esta viendo por ahi y he visto que la sintaxis intel se usa muchisimo mas, pero me da que tanpoco son tan diferentes.
en el gnu as puedes poner .intel_syntax para activar la sintaxis intel y .att_syntax para cuando quieres volver a la de por defecto, pero mi pregunta era : con el conpilador de c gcc si escribes -S en vez de dar un ejecutable da un fichero equivalente en ensamblador y me parecia util para aprender ensamblador por que ya domino C mas o menos, pero el problema es que al hacer esto el fichero que te da esta en syntaxis AT&T y los libros que tengo no dicen nada de AT&T y queria saber si hay alguna manera de que te de el fichero en sintaxis intel.

En cuanto a lo de 32 bits y 64 yo creia que los libros que compre tratarian mas los nuevos procesadores y dan un poco de 32 bits y gracias por que es casi todo de 16 bits a pesar de ser tan actuales: (Es que yo uso AMD Athlon 64 x2¿cuando hay mas CPUs hay mas registros? voy mas perdido...)
             

He encontado esto y creo que es sintaxis AT&T de 64 bits ¿es posible que AMD este mas relacionado con esta?
« Última modificación: 9 Septiembre 2009, 14:09 pm por tuket » En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: sintaxis intel y AT&T
« Respuesta #3 en: 9 Septiembre 2009, 14:46 pm »

Ya hay unos registros preseleccionados para 8 bits, 16 bits, 32 bits, 64 bits y powerpc (creo)
En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #4 en: 10 Septiembre 2009, 15:46 pm »

Si parece que para los de 16 no tiene prefijo, los de 32 tienen prefijo e y los de 64 tienen el prefijo rex.
ej:

16 -> ax
32 -> eax
64 -> rax

Mira en mi libro pone que un registro RAX puede estar dividido en 2 registros EAX y a su vez cada uno de estos estar dividido en AX y cada AX estar dividido en AH y AL, que cosas.
Ya voy pillando esto un poco, pero esta xungooo :¬¬
« Última modificación: 10 Septiembre 2009, 15:52 pm por tuket » En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #5 en: 10 Septiembre 2009, 23:05 pm »

Por cierto cuando hay 2 CPUs hay el doble de registros? como se accede al segundo procesador ?
gracias
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: sintaxis intel y AT&T
« Respuesta #6 en: 10 Septiembre 2009, 23:15 pm »

Creo que es imposible, porque tu trabajas con 1 PC no con dos a la vez con una misma pantalla :S
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: sintaxis intel y AT&T
« Respuesta #7 en: 11 Septiembre 2009, 00:46 am »

Código:
SetAffinityMask
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #8 en: 11 Septiembre 2009, 11:57 am »

SetProcessAffinityMask y SetThreadAffinityMask son funciones de la API de Windows, esto nos demuestra que el scheduler del S.O. es el que se encarga de encauzar la ejecucion de un hilo en un procesador determinado. Ademas el S.O. tiene que inicializar cualquier otro procesador que no sea el principal ... es un tema muy complejo y ligado a la arquitectura del hardware (APIC).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: sintaxis intel y AT&T
« Respuesta #9 en: 11 Septiembre 2009, 14:56 pm »

Gracias por contestar a todos  ;D

Citar
SetProcessAffinityMask y SetThreadAffinityMask son funciones de la API de Windows, esto nos demuestra que el scheduler del S.O. es el que se encarga de encauzar la ejecucion de un hilo en un procesador determinado. Ademas el S.O. tiene que inicializar cualquier otro procesador que no sea el principal ... es un tema muy complejo y ligado a la arquitectura del hardware (APIC).

quieres decir que el propio SO ya usa automaticamente el 2º CPU cuando le da la gana? cada CPU tiene su APIC o es comun? Perdon que haga tantas preguntaas pero es que realmente este tema me interesa mucho y me gustaria aprender por muy complejo que sea ;)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Gas Inline con Síntaxis Intel
ASM
farresito 3 6,431 Último mensaje 1 Julio 2011, 00:27 am
por farresito
Gas con sintaxis intel: Undefined reference to...
ASM
farresito 1 5,485 Último mensaje 11 Marzo 2011, 23:15 pm
por Eternal Idol
Desensamblar usando sintaxis de intel
Bugs y Exploits
Fastolfe 3 3,331 Último mensaje 28 Octubre 2011, 13:45 pm
por Fastolfe
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines