我正忙于学习组装并正在考虑划分,但是我遇到了以下陈述:
mov edx,0x00000001
mov eax,0x00000000
mov ecx,0x00000002
idiv ecx
广发银行:
0x08048071 <+17>: mov edx,0x1
0x08048076 <+22>: mov eax,0x0
0x0804807b <+27>: mov ecx,0x2
=> 0x08048080 <+32>: idiv ecx
我想将 0x100000000 除以 0x00000002,所以由于除法的跨度是 EDX:EAX,我将 0x1 移动到 EDX 并将 0x0 移动到 EAX。然后我将 0x2 移动到 ECX 并除以,不幸的是这给了我一个浮点异常,我不确定我做错了什么。
使用 div (无符号)时,它工作正常,所以我想知道 div 和 idiv 对于导致异常的特定语句的解释有什么区别。