Проблемы с языком ассемблера IDIV

CX равно 14 AX равно 16

IDIV CX

Но почему-то в AL 37. Перед этой строкой нет ошибок. Где я сделал ошибку? Благодарю вас! p.s. пишу на Emu8086


person Anton Bondar    schedule 24.10.2013    source источник
comment
Попробуйте сделать xor dx, dx перед div.   -  person 500 - Internal Server Error    schedule 25.10.2013


Ответы (1)


IDIV CX делит 32-битное значение DX:AX на CX и сохраняет частное в AX, а остаток в DX.

Поэтому значение DX перед инструкцией IDIV имеет значение, и вы должны либо расширить знак AX до DX с помощью инструкции CWD (до IDIV), либо очистить DX, используя, например, XOR DX,DX (до DIV).

person Michael    schedule 25.10.2013