Pasar argumentos a una función externa de C desde NASM

Iniciado por huchoko, 26 Febrero 2019, 02:22 AM

0 Miembros y 2 Visitantes están viendo este tema.

srWhiteSkull

#10
Código (asm) [Seleccionar]
extern _funcionEnCpp

section .bss
cadena resb 255 ; Reservamos 255 bytes para la variable cadena

section .text

global _main:

_main:
       ; *** Escribimos algo en la cadena ***
mov byte [cadena],   'H'
mov byte [cadena+1], 'o'
mov byte [cadena+2], 'l'
mov byte [cadena+3], 'a'
mov byte [cadena+4], ' '
mov byte [cadena+5], 'a'
mov byte [cadena+6], 's'
mov byte [cadena+7], 'm'
mov byte [cadena+8], 10  ; salto de linea
mov byte [cadena+9], 0   ; fin de la cadena
       ; ***************************

       ; *** pasamos los parámetros ***
mov  eax, 55
push eax ; metemos el valor
push cadena; metemos el puntero de la cadena
       ; ***************************

call _funcionEnCpp ; llamamos la funcion

       ; *** vaciamos la pila ***
pop eax
pop eax
       ; ********************

mov eax, 0 ; retornamos todo OK
ret