Hola a todos
estoy intentando insertar variables en asm inline gcc en windows tengo este code;
asm(
".intel_syntax noprefix;"
"mov eax, dword ptr args;"
"add eax, temp;"
"push [eax];"
);
pero en las variables "args" y "temp" el compilador me dice undefined reference to .... las variables estan declaradas y tal solo que no se como insertar variables en asm inline de gcc
uso: gcc -masm=intel code.c -o app.exe
...
gracias!
Podrias intentar compilar un programa de C, donde utilices los parametros de la ejecutable "args" a ver como los llama al depurar la aplicacion.
Luego, para "temp" tiene que estar declarada antes. Con asm inline no creo que puedas definir variables ya que no estarias accediento a la sección de datos.
int temp;
__asm{
mov temp, eax
}
Saludos
sabrias como pasar asm de sintaxis intel a at&t?
es lo que necesito para meter codigo asm inline en gcc para windows
tengo esto
intento traducir esto, el de arriba es codigo intel y el otro at&t pero se que esta mal el mio
asm
{
mov eax, dword ptr args
add eax, temp
push [eax]
}
__asm__(
"movl $args, %eax #;"
"addl $temp, %eax;"
"push (%eax);"
);
en este ejemplo de at&t si sirve necesito pasar el puntero de esa forma pero no logro hacerlo
#include <stdio.h>
int main() {
int temp = 4;
int temp2 = 5;
int total = 0;
__asm__ __volatile__("movl %1, %0;"
"addl %2, %0;"
: "=r" (total)
: "r" (temp), "r" (temp2)
: "0");
printf("temp: %i, temp2: %i - total: %i\n", temp, temp2, total);
return 0;
}
gracias, saludos!