SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: tousan en Viernes 3 de Julio de 2009, 18:57

Título: asm en C++(API y variables)
Publicado por: tousan en Viernes 3 de Julio de 2009, 18:57
Hola.
CUando inserto código en ensamblador en C++:
Código: Text
  1. __asm
  2. {
  3. ...
  4. }
  5.  

Cómo puedo llamar desde asm a una API??
Código: Text
  1. __asm
  2. {
  3. MessageBox(eax, NULL, NULL, 1);
  4. ...
  5. }
  6.  

Y finalmente, ¿cómo se utilizan las variables? Con MASM32 por ej. es así: valor dd ? para definir un dword pero en C++??:
Código: Text
  1. __asm
  2. {
  3. valor dd ?
  4. ...
  5. }
  6.  
Título: Re: asm en C++(API y variables)
Publicado por: Eternal Idol en Viernes 3 de Julio de 2009, 19:12
Aclaro que esto es para VC++ (obviamente que pasando cadenas vacias no funciona):

Código: ASM
  1.  
  2. __asm
  3. {
  4.   push 1
  5.   push NULL
  6.   push NULL
  7.   push eax
  8.   call dword ptr [MessageBoxA]
  9. }
  10.  
  11.  

Las variables declaralas en el codigo de C++.
Título: Re: asm en C++(API y variables)
Publicado por: tousan en Viernes 3 de Julio de 2009, 19:40
Gracias.
Es bastante diferente comparado con MASM32. Voy a intentar enlazar MASM32 con VC++ para que el código asm lo ensamble desde MASM32. estoy seguro que se tiene que poder. si lo consigo lo postearé. gracias
Título: Re: asm en C++(API y variables)
Publicado por: Eternal Idol en Viernes 3 de Julio de 2009, 19:44
En realidad es igual, salvo que en MASM tenes la directiva invoke para hacer las llamadas tipo C/C++.

Podes enlazar codigo objeto (.obj) o librerias estaticas o dinamicas (.lib, de importacion para el segundo caso) escritas en assembly perfectamente.