- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我了解,C 汇编中的 idivl 命令采用 %edx(较高有效的一半)和 %eax(较低有效的一半)表示的 64 位数字,将其除以参数,并将结果存储在 % 中edx:%eax 再次。
a/b 和 a > b 时的行为如我所料:10/2 在 %edx 中产生全 0,在 %eax 中产生全 5。
但是,我不确定为什么当 b > a 时 a/b 会产生它的作用。例如,当我将这两个切换为 2/10(即 %edx 全部为 0,%eax 为 2,并且赋予 idivl 的“参数”为 10)时,结果如下:
%edx 有 2 个; %eax 全为 0
为什么会是这样的结果呢?如果我们将 %edx 和 %eax 混合在一起,那就意味着 2/10 = 00000000000000000000000000000010000000000000000000000000000000000 二进制数,十进制数为 2^33,而不是接近 2/10。
谢谢!
最佳答案
你是对的,它将 EDX:EAX 除以其操作数,但它不会将结果存储回那里。
相反,它将商放入 EAX 中,将余数放入 EDX 中。
关于assembly - 两个数字的 idivl,其中第一个数字小于第二个数字(在汇编中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631001/
我有这些表达: cltd idivl (%ecx) 除以 int 时, 和: movl $0, %edx divl (%ecx) 分割 unsigned long 时 cltd 最佳答
据我了解,C 汇编中的 idivl 命令采用 %edx(较高有效的一半)和 %eax(较低有效的一半)表示的 64 位数字,将其除以参数,并将结果存储在 % 中edx:%eax 再次。 a/b 和 a
我是一名优秀的程序员,十分优秀!