[C con Clase] Ensamblador (sintaxis intel) en C usando gcc.

Steven R. Davidson vze266ft en verizon.net
Mar Feb 5 20:27:50 CET 2008


Hola Adolfo,

Adolfo Cárdenas wrote:

> He tratado de usar asm{} en dev c++ para windows y me salio el error
> 54 expected '(' before token "{"

La sintaxis correcta de 'asm' de la versión más reciente de ANSI C++ es 
la siguiente:

asm ( <cadena_de_caracteres> );

Como puedes ver, se usan paréntesis y no llaves. Por ejemplo,

asm( "mov eax,5\n"
      "mov ebx,10\n"
      "add eax,ebx\n" );

También ten presente que Dev-C++ usa el compilador de Mingw el cual se 
basa en GNU. El ensamblador de GNU se llama GAS que sigue la sintaxis de 
ensamblador de AT&T. Esta sintaxis es diferente a la de Intel que suele 
ser la usada por ensambladores bajo MS-DOS y MS-Windows como MASM, 
TASM/BASM, NASM, etc..

> Tambien probe generar un .obj con TASM e incluirlo en el programa y el
> compilador me pide tipos de datos para funcines y variables extern.
> 
> ¿Hay un ejemplo para usar ensamblador?
> 

Me temo que cada ensamblador es diferente no solamente en sintaxis pero 
también en las instrucciones existentes ya que dependen exclusivamente 
del procesador en cuestión. Por lo tanto, cualquier ejemplo que te 
pongamos puede o no serte de utilidad. Deberías decirnos cuál 
ensamblador y plataforma estás usando.


Espero haber aclarado el asunto.

Steven







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