ASM funciones

Páginas: 2 (343 palabras) Publicado: 19 de marzo de 2014
Código en C
#include


int main(){

float x,y,z;

printf("Escribe el primer numero ");

scanf("%f",&y);

printf("Escribe el segundo numero ");

scanf("%f",&z);

asm_main();printf("La suma es %f\n",x);

return 0;

}

Código ASM
segment .text

global asm_main



asm_main:

push EBP

mov EBP, ESP

fld dword[ESP+28]
;Nota1
fadd dword[ESP+32];Nota2
fst dword[ESP+36]
;Nota3
mov ESP, EBP

pop EBP

ret

Archivo driver.s
.file "driver.c"

.section .rodata

.LC0:

.string "Escribe el primer numero "

.LC1:.string "%f"

.LC2:

.string "Escribe el segundo numero "

.LC3:

.string "La suma es %f\n"

.text

.globl main

.type main, @function

main:

.LFB0:

pushl %ebp

movl %esp,%ebp

andl $-16, %esp

subl $32, %esp

movl $.LC0, (%esp)

call printf

leal 20(%esp), %eax

movl %eax, 4(%esp)

movl $.LC1, (%esp)

call __isoc99_scanf

movl $.LC2, (%esp)call printf

leal 24(%esp), %eax

movl %eax, 4(%esp)

movl $.LC1, (%esp)

call __isoc99_scanf

call asm_main

flds 28(%esp)

fstpl 4(%esp)

movl $.LC3, (%esp)

call printfmovl $0, %eax

leave

ret

;Nota1: La instrucción fld carga su parámetro en el registro st0 del FPU.
;Nota2: La instrucción fadd suma su parámetro con el contenido del registro st0, elresultado es almacenado en el mismo registro st0.
;Nota3: La instrucción fst toma el elemento que se encuentra en el tope de la pila del FPU y lo mueve hacia donde se le indica en el parámetro.

; Acada una de las instrucciones anteriores se les hace una suma que se debe a lo siguiente: la función asm_main obtiene sus parámetros desde la pila. Cómo cada uno de sus parámetros son float, entoncesocupan cada uno 4 bytes y según el archivo driver.s, son almacenados en las direcciones 20, 24 y 28, sin embargo, cuando se hace la llamada se agregan 4 bytes más a la pila (valor de retorno) y...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • CICLO ASM
  • Normas asm
  • asm,db
  • Pics Asm
  • Carta ASM
  • cartas asm
  • Diagramas Asm
  • Cartas ASM

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS