.section .data
value1:
.float 12.34
value2:
.float 56.789
rup:
.byte 0x7f, 0x0b
.section .bss
.lcomm buffer, 28
.section .text
.global _start
_start:
nop
finit
flds value1
flds value2
fldcw rup #设置状态寄存器并保存
fstenv buffer #存储 FPU 环境
finit
flds value2
flds value1
fldenv buffer #恢复 FPU 环境
movl $1, %eax
movl $0, %ebx
int $0x80
fctrl 0x37f 895
fstat 0x0 0
st0 12.340000152587890625 (raw 0x4002c570a40000000000)
fctrl 0x37f 895
fstat 0x3800 14336
st0 56.78900146484375 (raw 0x4004e327f00000000000)
st1 12.340000152587890625 (raw 0x4002c570a40000000000)
fstat 0x3000 12288
fctrl 0xb7f 2943
fctrl 0xb7f 2943
fstat 0x3000 12288
st0 12.340000152587890625 (raw 0x4002c570a40000000000)
st1 56.78900146484375 (raw 0x4004e327f00000000000)
.section .data
value1:
.float 12.34
value2:
.float 56.789
rup:
.byte 0x7f, 0x0b
.section .bss
.lcomm buffer, 108
.section .text
.global _start
_start:
nop
finit
flds value1
flds value2
fldcw rup
fsave buffer
flds value2
flds value1
frstor buffer
movl $1, %eax
movl $0, %ebx
int $0x80
... ...
fctrl 0x37f 895
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 56.78900146484375 (raw 0x4004e327f00000000000)
st7 12.340000152587890625 (raw 0x4002c570a40000000000)
... ...
(gdb) x/108xb &buffer
0x80490c0 <buffer>: 0x7f 0x0b 0xff 0xff 0x00 0x30 0xff 0xff
0x80490c8 <buffer+8>: 0xff 0x0f 0xff 0xff 0x7e 0x80 0x04 0x08
0x80490d0 <buffer+16>: 0x73 0x00 0x05 0x01 0xb4 0x90 0x04 0x08
0x80490d8 <buffer+24>: 0x7b 0x00 0xff 0xff 0x00 0x00 0x00 0x00
0x80490e0 <buffer+32>: 0x00 0xf0 0x27 0xe3 0x04 0x40 0x00 0x00
0x80490e8 <buffer+40>: 0x00 0x00 0x00 0xa4 0x70 0xc5 0x02 0x40
0x80490f0 <buffer+48>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x80490f8 <buffer+56>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049100 <buffer+64>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049108 <buffer+72>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049110 <buffer+80>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049118 <buffer+88>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049120 <buffer+96>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x8049128 <buffer+104>: 0x00 0x00 0x00 0x00
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |