浮点处理与x86指令编码详解
1. 浮点运算基础
1.1 浮点除法指令
在浮点运算中,除法操作是常见的操作之一。例如,下面的代码展示了如何进行浮点除法:
dblTwo REAL8 10.0
dblQuot REAL8 ?
.code
fld dblOne ; load into ST(0)
fdiv dblTwo ; divide ST(0) by dblTwo
fstp dblQuot ; store ST(0) to dblQuot
需要注意的是,如果源操作数为零,会产生除零异常。当操作数为正无穷、负无穷、零或NaN时,除法操作有一些特殊情况,具体细节可参考英特尔指令集参考手册。
另外, FIDIV 指令会在将整数源操作数除以 ST(0) 之前,将其转换为双扩展精度浮点格式。其语法如下:
FIDIV m16int
FIDIV m32int
1.2 浮点值比较
不能使用 CMP 指令来比较浮点值,因为 CMP 指令使用整数减法进行比较。相反,必须使用 FCOM 指令。执行 FCOM 后,在逻辑 IF 语句中使用条件跳转指令(如 JA 、 JB 、
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



