SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Karin2009 en Martes 28 de Abril de 2009, 16:25

Título: como llamar a un programa ensamblador?
Publicado por: Karin2009 en Martes 28 de Abril de 2009, 16:25
Hola, estoy trabajando con nasm. Me piden q haga un programa en ensambaldor que me pida un valor, lo lea, y lo vuelva a imprimir con sus respectivos mensajes, utilizando las funciones de C printf y scanf. El programa en ensamblador q he hecho es este:
Código: ASM
  1.  
  2. %include "asm_io.inc"
  3.  
  4. segment .data
  5.     prompt1  db "Ingrese valor : "
  6.     prompt2  db "%f",0
  7.         prompt3  db "El valor ingresado es %f",10,0
  8.  
  9. segment .bss
  10.     a  resd 1
  11.  
  12. segment .text
  13.         global pedir
  14.     extern printf, scanf
  15.  
  16.     pedir:
  17.             enter   0,0               ; setup routine
  18.             pusha
  19.    
  20.         ;printf(prompt1)
  21.         push prompt1
  22.         call printf
  23.         add esp,4
  24.    
  25.         ;scanf("%f",&a)
  26.         push a
  27.         push prompt4
  28.         call scanf
  29.         add esp,8
  30.        
  31.         push dword[a]
  32.         push prompt6
  33.         call printf
  34.         add esp, 8
  35.    
  36.     salir:          
  37.         popa
  38.             mov     eax, 0            ; return back to C
  39.             leave                    
  40.             ret
  41.  
  42.  

Lo que no se es como llamarlo desde un programa en C, no necesita que le pase parametros, solo llamarlo. Agradeceria mucho su ayuda
Título: Re: como llamar a un programa ensamblador?
Publicado por: m0skit0 en Martes 28 de Abril de 2009, 16:30
system() (http://linux.die.net/man/3/system)