- 论坛徽章:
- 0
|
按照楼上dx说的,电脑的配置和汇编的结果都贴出来了。以前学汇编的时候没关注过浮点运算,还请指点。
-------------------------------------
computer: Dell D520 笔记本
cpu : Intel core2duo 1.66G
mem : 1G 667MHz
-------------------------------------
>cat t.s
.file "t.c"
.section .rodata
.align 8
.LC0:
.long -1610612736
.long 1069128089
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $36, %esp
fldl .LC0
fstpl -32(%ebp)
fldz
fstpl -24(%ebp)
movl $0, -12(%ebp)
jmp .L2
.L3:
fldl -24(%ebp)
faddl -32(%ebp)
fstpl -24(%ebp)
incl -12(%ebp)
.L2:
cmpl $1023999999, -12(%ebp)
jle .L3
addl $36, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)" .section .note.GNU-stack,"",@progbits
------------------------------
>cat t2.s
.file "t2.c"
.section .rodata
.align 8
.LC0:
.long -1610612736
.long 1069128089
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $52, %esp
fldl .LC0
fstpl -56(%ebp)
fldz
fstpl -24(%ebp)
fldl -24(%ebp)
fstpl -32(%ebp)
fldl -32(%ebp)
fstpl -40(%ebp)
fldl -40(%ebp)
fstpl -48(%ebp)
movl $0, -12(%ebp)
jmp .L2
.L3:
fldl -48(%ebp)
faddl -56(%ebp)
fstpl -48(%ebp)
incl -12(%ebp)
.L2:
cmpl $255999999, -12(%ebp)
jle .L3
fldl -40(%ebp)
faddl -56(%ebp)
fstpl -40(%ebp)
fldl -32(%ebp)
faddl -56(%ebp)
fstpl -32(%ebp)
fldl -24(%ebp)
faddl -56(%ebp)
fstpl -24(%ebp)
addl $52, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)" .section .note.GNU-stack,"",@progbits
[ 本帖最后由 jeanlove 于 2008-10-23 10:21 编辑 ] |
|