[C con Clase] [Bulk] Problemas con assembler...
Steven Richard Davidson
stevenrichard.davidson en gmail.com
Mar Nov 6 23:49:47 CET 2007
Hola José Rubiel,
On 11/6/07, Jose Rubiel Castrillón Garcia <josecastrillon en gmail.com> wrote:
>
> estoy utilizando como compilador el borland c++, primero me gustaria saber
> si este compilador es apto para combinarlo con el assembler y segundo los
> ejercicios que he hecho con assembler primero no me han corrido, segundo
> quisiera saber mas sobre este tema..
>
Bueno, Zelion te ha respondido, pero quiero agregar a lo dicho.
El estándar del lenguaje C++ acepta código de ensamblador embebido. La
sintaxis es la siguiente:
asm( <cadena_de_caracteres> );
Por ejemplo,
asm( "mov ax, 0x20\n" );
asm( "mov bx, 0x2a\n" );
asm( "add ax, bx\n" );
asm( "sub bx, 0xa9\n" );
Básicamente, lo que escribas en las cadenas de caracteres será copiado
al programa generado en ensamblador tal y como está. También podríamos
haber escrito,
asm( "mov ax, 0x20\n"
"mov bx, 0x2a\n"
"add ax, bx\n"
"sub bx, 0xa9\n" );
Si usas Borland C++ 5.xx o anterior, este compilador no está
actualizado a la última revisión del lenguaje C++. Una de las
diferencias de la normativa está en que BC++ usa su propio sintaxis
para ofrecer instrucciones en ensamblador para C y C++. Su sintaxis
(no estándar) es:
asm <instrucción> <parámetros> <; o nueva_línea>
También puedes usar '_asm' o '__asm'. Lo típico es agrupar todas las
instrucciones de ensamblador. Para ello, puedes usar llaves {}. Por
ejemplo,
asm
{
mov ax, 0x20
mov bx, 0x2a
add ax, bx
sub bx, 0xa9
}
Si tienes Borland Builder C++, por lo que he comprobado, sólo acepta
la sintaxis de Borland y no la estándar de C++. Es posible que en
versiones más recientes de Builder, el compilador implemente el
estándar para este aspecto.
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase