Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2014, 20:23
Archer3CL
 
Fecha de Ingreso: octubre-2011
Mensajes: 9
Antigüedad: 12 años, 6 meses
Puntos: 0
Suma de Flotantes con ASM y C

Solicito su ayuda para la resolución de este ejercicio.
Se me ha dado un fragmento de codigo en C que ejecuta la suma de 2 numeros de punto flotante utilizando un codigo en ensamblador

Este es el Codigo en C

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.     float x, y, z;
  5.  
  6.     printf("Escribe el primer numero: ");
  7.     scanf("%f", &y);
  8.     printf("\nEscribe el segundo numero: ");
  9.     scanf("%f", &z);
  10.    
  11.     x = asm_main( );
  12.    
  13.     printf("la suma es %f\n",x);
  14.  
  15. return;
  16. }

Y este es el codigo en ensamblador usando NASM en una arquitectura x86 que debo modificar (este codigo fue hecho para la suma de numeros enteros)
Código asm:
Ver original
  1. segment .text
  2.     global asm_main
  3.  
  4. asm_main:
  5.     push  ebp
  6.     mov   ebp, esp
  7.     mov   eax, dword [esp+28]
  8.     add   eax, dword [esp+32]
  9.     mov   esp, ebp
  10.     pop   ebp
  11.     ret

Hasta ahora no he logrado que la suma se realice, pero supongo que son necesarias las instrucciones fld, faddp y fstp

Si cualquiera pudiese orientarme en la resolución de este ejercicio les estare agradecido.