指令 | 描述 |
F2XM1 | 计算2的乘方(次数为ST0中的值)减去1 |
FABS | 计算ST0中的值的绝对值 |
FCHS | 改变ST0中的值的符号 |
FCOS | 计算ST0中的值的余弦 |
FPATAN | 计算ST0中的值的部分反正切 |
FPREM | 计算ST0中的值除以ST1中的值的部分余数 |
FPREM1 | 计算ST0中的值除以ST1中的值的IEEE部分余数 |
FPTAN | 计算ST0中的值的部分正切 |
FRNDINT | 把ST0中的值舍入到最近的整数 |
FSCALE | 计算ST0乘以2的ST1次乘方 |
FSIN | 计算ST0中的值的正弦 |
FSINCOS | 计算ST0中的值的正弦和余弦 |
FSQRT | 计算ST0中的值的平方根 |
FYL2X | 计算ST1*logST0(以2为基数) |
FYL2XP1 | 计算ST1*log(ST0+1) (以2为基数) |
.section .data
value1:
.float 395.21
value2:
.float -9145.290
value3:
.float 64.0
.section .text
.global _start
_start:
nop
finit
flds value1
fchs
flds value2
fabs
flds value3
fsqrt
movl $1, %eax
movl $0, %ebx
int $0x80
st0 8 (raw 0x40028000000000000000)
st1 9145.2900390625 (raw 0x400c8ee5290000000000)
st2 -395.209991455078125 (raw 0xc007c59ae10000000000)
.section .data
value1:
.float 3.65
rdown:
.byte 0x7f, 0x07
rup:
.byte 0x7f, 0x0b
.section .bss
.lcomm result1, 4
.lcomm result2, 4
.lcomm result3, 4
.section .text
.global _start
_start:
nop
finit
flds value1
frndint
fists result1
frndint
fists result2
fldcw rup
flds value1
frndint
fists result3
movl $1, %eax
movl $0, %ebx
int $0x80
(gdb) x/d &result1
0x80490c4 <result1>: 4
(gdb) x/d &result2
0x80490c8 <result2>: 3
(gdb) x/d &result3
0x80490cc <result3>: 4
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |