В инструкции Intel idiv (целочисленное деление) означает деление со знаком.
Я получил результат idiv
, но я не совсем понял результат.
- Пример
0xffff0000 idiv 0xffff1100
- Мой неверный прогноз
Насколько я знаю, quotient
должно быть0, и remainder
должно быть 0xffff0000, и потому ...
0xffff0000 / 0xffff1100 = 0
0xffff0000 % 0xffff1100 = 0xffff0000
- Однако результат был ...
До idiv
eax 0xffff0000 # dividend
esi 0xffff1100 # divisor
edx 0x0
После idiv
eax 0xfffeedcc # quotient
edx 0x7400 29696 # remainder
- Вопрос .
Результатом было значение, которого я не мог ожидать.
Может ли кто-нибудь объяснить о делении со знаком (idiv
)?
-Приложено. Вот дополнительная информация о idiv
.
idiv
использует регистр eax в качестве регистра источника.
В результате выполнения частное сохраняется в eax, а остаток сохраняется в edx.