[C con Clase] Compilar assembler y c

Steven Davidson steven en conclase.net
Vie Jun 15 04:44:07 CEST 2007


Hola Edgar,

El pasado 2007-06-15 01:33:15, Edgar escribió:

E> amigos buenas noches, alguien puede indicarme como puedo compilar y crear un
E> ejecutable con funciones externas de assembler, es decir funciones que son
E> llamados en c pero son codificados en assembler con borland c lo ejecuto de
E> esta forma en modo consola:
E> cpp archivo_c.c archivo_asm.asm
E> pero quiero utilizar gcc, g++ o algun compilar gnu ya que utilizo dev-c,
E> como es la metodologia con estos compiladores, desde ya muy agradecido

Los ficheros en ensamblador, para GCC, tienen la extensión ".s". Si el fichero necesita ser preprocesado antes de ensamblar, entonces debe ser ".S". Por ejemplo,

> gcc fuente_c.c fuente_asm.s

Si quieres cerciorarte de que GCC vaya a tratar el fichero en ensamblador correctamente, puedes usar la opción -x y el lenguaje. Por ejemplo,

> gcc fuente_c.c -x assembler fuente_asm.s

También puedes el ensamblador de GNU llamado GAS. Por ejemplo,

> gas fuente_asm.s -o fuente_asm.o

Luego, puedes enlazar este objeto fuente con el objeto fuente generado por GCC o dárselo a GCC para que lo haga todo "detrás del telón", por así decirlo.

Sugiero consultar algún manual de GCC para ver las opciones de comando.


Por otro lado, ten cuidado al usar programas escritos en ensamblador, ya que no existe ningún estándar porque depende del ensamblador y de la plataforma. Dicho esto, deberás aprender la sintaxis de ensamblador de AT&T si pretendes escribir programas en ensamblador usando GNU. La sintaxis es bastante diferente, pero no muy difícil, a la de Borland, Microsoft, u otros ensambladores para Microsoft.


Espero que esto te ayude.

Steven


Más información sobre la lista de distribución Cconclase