猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
我们什么时候以及为什么要签署extend,并在mul / div中使用cdq?
我今天进行了测试,我唯一不了解的问题是将双字转换为四字。
这让我开始思考,为什么/何时为扩展或除法签名?另外,什么时候使用cdq等说明?
Cats萌萌
浏览 546
回答 3
3回答
摇曳的蔷薇
我总是在汇编中混为一谈,因为我对寄存器感到困惑。我认为股息总是放在eax / ax中,而一个操作数的指令只是div / idiv ebx(或其他寄存器)。这将有效地执行eax / ebx,商在eax中,余数在edx中。我的考试显示,在调用包含71的EAX上的idiv和包含-4的另一个寄存器之前,我们使用了cdq。为什么是这样?我们使用了每个寄存器的全部,我不明白为什么我们需要其中一个成为四字。
0
0
0
四季花海
请阅读答案的第一行和/或英特尔的insn参考手册。 idiv ebx做eax = (edx:eax)/ebx和eax = (edx:eax)%ebx。edx始终是股息的高半部分,而显式操作数始终是除数。没有div/ 形式idiv会忽略edx2和3操作数形式imul仅产生单寄存器结果的方式。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续