jestem zajęty uczenia Montaż i patrzył na podzielenie jednak wpadłem na zalewie z następującym stwierdzeniem:wyjątkowy zmiennoprzecinkowy po podzieleniu na x86 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
Chciałem podzielić 0x100000000 przez 0x00000002, więc ponieważ zakres podziału to EDX: EAX, przeniosłem 0x1 do EDX i 0x0 do EAX. Następnie przenoszę 0x2 do ECX i dzielę, to niestety daje mi wyjątek zmiennoprzecinkowy, nie jestem pewien, co zrobiłem źle.
Używając div (unsigned) działa normalnie, więc zastanawiam się, jaka jest różnica w interpretacji div i idiv dla tego konkretnego zdania, które powoduje wyjątek.
Oczywiście zapomniałem, że mogę podpisać tylko 2147483647. Głupi błąd, dzięki :) –