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

Programante programante en gmail.com
Mie Mar 26 00:22:26 CET 2008


Adolfo Cárdenas escribió:
> 2008/2/11, Programante <programante en gmail.com>:
>   
>> int ensamblador() {
>> asm(".intel_syntax noprefix\n"
>>       "mov eax, 5\n"
>>       "add eax, 7\n"
>>      ".att_syuntax");
>> }
>>
>> #include <iostream>
>>
>> int main() {
>>  std::cout << "Este es un programa en C++ que devuelve 12 a través de
>> ensamblador: " << ensamblador() << std::endl;
>>  return 0;
>> }
>>
>>     
> Hola, gracias, pero tuve el problema de exceso de mensajes al colocar el codigo
>
>  asm(".intel_syntax noprefix\n"
>        "mov eax, 5\n"
>        "add eax, 7\n"
>       ".att_syuntax");
>
>   Assembler messages:
>   `.att_syuntax'
>     `incl %edx'
>   `pushl %ebp'
> ....
>   Unrecognized token ''
>   [General Error] Too many messages; abort.
"Too many messages" te lo da cuando te ha mostrado anteriormente tantos 
errores que decide no seguir adelante.
El problema está en que cometí un fallo al escribir la última directiva. 
No es .att_syuntax sino .att_syntax por lo
que detecta como erróneo todo el código en AT&T generado por gcc.

Me alegra ver que alguien hace buen uso de los archivos de la lista :-)

Otra opción que no comenté en ese mensaje es compilar con la opción 
-masm=intel con lo que todo el código asm
pasa a estar en sintaxis de intel y no necesitas incluir los 
.intel_syntax / .att_syntax




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