D'après ce que j'ai compris, idiv %ebx
divisera edx:eax
(concaténés en une valeur de 64 bits, dans cet ordre) avec des valeurs de 32 bits. ebx
.
Cependant, lorsque j'essaie de diviser 0x00000000:0xfffffffb
(0 et -5) avec 0xffffffff
(-1), j'obtiens une exception de virgule flottante.
Quelqu'un peut-il expliquer pourquoi ? Je suis assez perplexe quant à la raison pour laquelle cela se produit, car je ne divise pas par 0 après tout.
Note que je sais que je dois signer pour prolonger edx:eax
pour réaliser ce que je veux, c'est-à-dire calculer -5/-1
. Cependant, même sans extension de signe, le dessous devrait pas causer un FPE.