48、浮点处理与x86指令编码详解

浮点处理与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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值