IDIV-DIV
作者:Vesper Vei
1 分钟阅读
目录
IDIV-DIV(idiv / div)
基本作用
IDIV → 有符号除法
DIV → 无符号除法
结果布局:
- 商 → eax
- 余数 → edx
(或 rax / rdx)
IDIV(有符号)格式
idiv r/m32; edx:eax ÷ r/m32; 有符号除法执行前需:
- 将 EDX 填入 EAX 的符号扩展(cdq 指令)
DIV 指令格式(无符号)
div r/m8; ax ÷ r/m8; al = 商; ah = 余数
div r/m32; edx:eax ÷ r/m32; eax = 商; edx = 余数注意:执行前必须将 edx 清零(若被除数是 unsigned dword)。
行为特性
- 除数为 0 → 除零异常
- 商或余数超范围 → 溢出异常
- 隐式使用寄存器(AL/AX/EAX/RAX 和 AH/EDX/RDX)
示例
mov eax, 100mov ecx, 7xor edx, edxdiv ecx; eax = 14, edx = 2有符号:
mov eax, -30mov ecx, 4cdqidiv ecx; eax = -7, edx = -2