我一直在尝试在线组装中的基本算术函数一切正常,除了引起整数溢出的鸿沟,我不明白为什么。
这是我的代码:
int a = 10;
int b = 2;
int c = 0;
int asmdivide(void);
int main(int argc, char* argv[])
{
asmdivide();
}
int asmdivide()
{
__asm
{
push dword ptr[a]
push dword ptr[b]
pop edx
pop eax
idiv edx // integer Overflow
push ecx
pop dword ptr[c]
}
return c;
}
我得到的错误是:
Unhandled exception at 0x010F13EC in Divide Test.exe: 0xC0000095: Integer Overflow.