Test Foro de elhacker.net SMF 2.1

Programación => Programación General => ASM => Mensaje iniciado por: TheEnmanuelRmrz en 1 Noviembre 2014, 08:14 AM

Título: Como utilizar un módulo .obj en C++
Publicado por: TheEnmanuelRmrz en 1 Noviembre 2014, 08:14 AM
Saludos.
Hace tiempo leí por ahí que los archivos que obtienes cuando ensamblas un programa se pueden utilizar como subrutinas en programas C o C++ mi duda es como por ejemplo implementaría una función desde C que esté contenida en un .obj
y si tengo que exportarla o algo así?
Título: Re: Como utilizar un módulo .obj en C++
Publicado por: Eternal Idol en 1 Noviembre 2014, 09:30 AM
¿Implementaria o llamaria a una funcion queres decir? Para poder llamarla tenes que declarar la funcion correctamente en ambos lenguajes, tiene que coincidir la convencion de llamada y el decorado (http://en.wikipedia.org/wiki/Name_mangling). Un ejemplo en VC++ y MASM con stdcall:

Código (asm) [Seleccionar]

...
PUBLIC suma@8
...
suma@8:
  mov eax, dword ptr [esp + 4]
  add eax, dword ptr [esp + 8]
ret 8
...


Código (c++) [Seleccionar]
unsigned int __stdcall suma(unsigned int x, unsigned int y);
...
printf("%d\r\n", suma(5, 25));
...