#functest2.S -An example
.section .data
precision:
.byte 0x7f,0x00 #char precision[]={0x7f,0x00}
.section .bss
.lcomm radius,4 #l标号,权限在这个文件内static int radius
.lcomm result,4
.lcomm trash,4
.section .text
.globl _start
_start:
nop
finit
fldcw precision #初始FPU-->浮点运算
movl $10,radius
call area
movl $2,radius
call area
movl $120,radius
call area
movl $1,%eax
movl $0,%ebx
int $0x80
.type area,@function
area:
#对FUP的操作
fldpi #pi放到st(0)里
filds radius #pi上移一个放入st(1);radius放入st(0)
fmul %st(0),%st(0)
fmulp %st(0),%st(1)
fstps result
ret