Red de conocimientos turísticos - Conocimientos sobre calendario chino - Error al llamar a la subrutina en lenguaje ensamblador en la conexión del programa en lenguaje C
Error al llamar a la subrutina en lenguaje ensamblador en la conexión del programa en lenguaje C
Esto se debe a que su compilador de C es de 32 bits y el lenguaje ensamblador es de 16 bits, por lo que, por supuesto, hay algún problema con la conexión e incluso si no hay ningún problema, no funcionará.
Se recomienda cambiar a un compilador ensamblador de 32 bits y escribir instrucciones ensambladoras de 32 bits, pero debe volver a aprender el ensamblador de 32 bits.
Otro enfoque es utilizar VC para escribir lenguaje C y usar ensamblador en línea directamente en lenguaje C. El código es el siguiente
__stdcall int fun()
{
int a;
__asm{
mov eax , [esi+4];
añadir eax, [esi+6];
mov a, eax;
}
devuelve a;
}
int main(int argc, char* argv[])
{
printf ("¡Hola mundo!\n");
printf("%d\n",fun());
devuelve 0;
}