You are on page 1of 2

.

code32
SYSCALL32 = 0x80
EXIT = 1
.code32
.text
.globl pole
.type pole, @function
pole:
pushl %ebp
movl %esp, %ebp
movl $0,(%esp)
pushl $2
fild (%esp)
fld 8(%ebp)
fld 12(%ebp)
fmul %ST(1),%ST(0)
fdivr %ST(2),%ST(0)
#fstp %ST(0)
#fstp %ST(0)
#fstp %ST(0)

# pierwszaliczba
# druga liczba
#a*h
#ah/2

pop %ebp
ret

C:
extern float trojkat(float a, float b, float c);
w Asm:
.data:
.equ P1, 2*4
.equ P2, 3*4
.equ P3, 4*4
.text
.globl trojkat
.type trojkat, @function
trojkat:
pushl %ebp
movl %esp, %ebp
fld P1(%ebp)
fld P2(%ebp)
fld P3(%ebp)
pushl $-1
fild (%esp)
movl $0, (%esp)
fild (%esp)
fadd %st(2), %st(0)
fadd %st(3), %st(0)
fadd %st(4), %st(0)
fscale
fstp %st(1)
fsub %st(0), %st(1)
fsub %st(0), %st(2)
fsub %st(0), %st(3)

fmulp
fmulp
fmulp
fsqrt
leave
ret

You might also like