Насколько я понял, idiv %ebx
разделит edx:eax
(объединенный в 64-битное значение в указанном порядке) с 32-битным ebx
.
Однако, когда я пытаюсь разделить0x00000000:0xfffffffb
(0 и -5) с 0xffffffff
(-1), я получаю исключение с плавающей запятой.
Может кто-нибудь объяснить, почему?Я довольно озадачен, почему это происходит, потому что я не делю на 0 в конце концов.
Примечание , которое я знаю, мне нужно подписать расширение edx:eax
, чтобы достичь того, чтоЯ хочу, чтобы рассчитать -5/-1
.Однако даже без расширения знака приведенное ниже не должно вызывать FPE.