CDQ指令及其相关除法

摘要:
商˂-/的余数运算表示为˂-/:32位被除数置于DX、AX中。其中DX是高阶字,16位除数是源操作数,结果的16位结尾在AX中,16位余数在DX中。IDIV有符号除法指令的格式:IDIVSRC执行的操作与DIV相同,但操作数必须是有符号的数字,商和余数也是有符号的,余数的符号和被除数的符号相同

CDQ(Convert Double to Quad的缩写,意为将双字数据扩展为四字),大多出现在除法运算之前. 它实际的作用只是把EDX的所有位都设成EAX最高位的值.

也就是说,当EAX <80000000, EDX 00000000  (80000000以下是正数,原码0开头); 当EAX >= 80000000, EDX 则为FFFFFFFF).

除法分为DIV(无符号)和IDIV(有符号)

DIV (unsigned divide) 无符号数除法

格式:DIV SRC

执行的操作:

  字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中。表示为

  (AL)<-(AX)/(SRC) 的商    (AH) <-(AX)/(SRC) 的余数

  字操作:32位被除数放在DX,AX中。其中DX为高位字,16位除数为源操作数,结果的16位端在AX中,16位余数在DX中。表示为   (AX)<-(DX,AX)/(SRC) 的商   (DX)<-(DX,AX)/(SRC) 的余数

  双字操作:64位被除数在EDX,EAX中,其中EDX为高位双字,32位除数为源操作数,结果的32位商在EAX中,32位余数在EDX中,表示为   (EAX)<-(EDX,EAX)/(SRC) 的商   (EDX)<-(EDX,EAX)/(SRC) 的余数。 商和余数均为无符号数。


IDIV 带符号除法指令

格式:IDIV SRC

执行的操作:与DIV相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同

免责声明:文章转载自《CDQ指令及其相关除法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇i春秋brokennodejs-5.6 cookie-parser下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

前端项目里常见的十种报错及其解决办法

错误6:未标记引用错误:$isnotdefinedUncaughtReferenceError:$isnotfinedUnaughtReferenceError,如果将其更改为jsp页面,则无法找到路径。此时,它变成了一个幻影。png格式。此时,您只需将以下代码添加到文件:Picture。png解决方案:在和˂Base href=“”˃错误8:未捕获类型错误...

JQuery 导入导出 Excel

正在做一个小项目,从数据库中查询数据放在HTMLTable中.现在想要从这个table中导出数据来.另外用户需要选择导出的列.使用jQuery的导出插件可以完成这个需求.jQueryPlugintoExportHTMLTables例子:导入插件:[javascript]viewplaincopy˂/scr...

Qt使用镜像源快速安装与更新

如果我们选择在线安装模式,那就更麻烦了,因为下载速度一般不慢。事实上,在中国,Qt图片来源很多,但很少有人使用。原因是Qt图像源做得不好。如果我们导入它,它将自动链接到官方图像源。因为它已经从官方来源同步,没有更改,所以我们无法逐个添加补丁,这太麻烦了。好吧,让我停止胡说八道。让我告诉你如何使用国产Qt图像源。...

C# AES的128位、192位、256位加密

这里将不解释C#AES的128位、192位和256位加密原理。这里我们主要讨论AES的CBC加密模式中128位、192位和256位加密之间的差异,并参考对称加密和块加密的四种模式。16位密钥对应128位加密,24位密钥对应192位加密,32位密钥对应256位加密,矢量必须为16位。“);ifthrownewException(”指定的密钥长度不能小于16位。...

(二)Jenkins配置主从节点实例

4.从节点配置和相关配置中从节点机创建jenkins用户,并从一些环境配置中创建jenkings用户的ssh密钥,用于指定上述配置界面的ssh启动模式;在配置启动模式和项目源代码管理中从远程仓库获取源代码;创建Jenkins用户并使用root登录到远程子节点计算机。#adduserjenkins#passwdjenkins生成Jenkins用户的ssh密钥。...

docker run hangs问题排查记录

1.故障描述过去两天遇到了一个非常奇怪的问题。现在完整的故障描述如下:1)首先,我的同事告诉我,K8S集群中的一个工作节点将其状态更改为NoReady,并且在节点kubelet_truntime的错误日志中发现了大量此类日志E060301:50:51.45511776268remote。go:332]ExecSync1f0e3ac13faf224129bc4...