8
我忙于学习大会,并一直在寻找将在浮点异常,但是我跑进用下面的语句咸菜:在86 NASM将
mov edx,0x00000001
mov eax,0x00000000
mov ecx,0x00000002
idiv ecx
GDB:
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之间的差异是什么。
当然我忘记了签名时我只能上到2147483647。啊愚蠢的错误,谢谢:) – 2013-03-24 18:56:55