fld source
.section .data
value1:
.float 12.34
value2:
.double 2353.631
.section .bss
.lcomm data, 8
.section .text
.global _start
_start:
nop
flds value1
fldl value2
fstl data
mov $1, %eax
mov $0, %ebx
int $0x80
(gdb) print $st0
$2 = 12.340000152587890625
(gdb) print $st0
$1 = 2353.6309999999998581188265234231949
st0 2353.6309999999998581188265234231949 (raw 0x400a931a189374bc6800)
st1 12.340000152587890625 (raw 0x4002c570a40000000000)
(gdb) x/gf &data
0x80490a0 <data>: 2353.6309999999999
指令 | 描述 |
FLD1 | 把 +1.0 压入 FPU 堆栈中 |
FLDL2T | 把 10 的对数(底数2)压入 FPU 堆栈中 |
FLDL2E | 把 e 的对数(底数2)压入 FPU 堆栈中 |
FLDPI | 把 pi 的值压入 FPU 堆栈中 |
FLDLG2 | 把 2 的对数(底数10)压入 FPU 堆栈中 |
FLDLN2 | 把 2 的对数(底数e) 压入堆栈中 |
FLDZ | 把 +0.0 压入压入堆栈中 |
.section .text
.global _start
_start:
nop
fld1
fldl2t
fldl2e
fldpi
fldlg2
fldln2
fldz
movl $1, %eax
movl $0, %ebx
int $0x80
st0 0 (raw 0x00000000000000000000)
st1 0.6931471805599453094286904741849753 (raw 0x3ffeb17217f7d1cf79ac)
st2 0.30102999566398119522564642835948945 (raw 0x3ffd9a209a84fbcff799)
st3 3.1415926535897932385128089594061862 (raw 0x4000c90fdaa22168c235)
st4 1.4426950408889634073876517827983434 (raw 0x3fffb8aa3b295c17f0bc)
st5 3.3219280948873623478083405569094566 (raw 0x4000d49a784bcd1b8afe)
st6 1 (raw 0x3fff8000000000000000)
st7 0 (raw 0x00000000000000000000)
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |