Основного вопроса:Неправильного результата после деления знакового целого числа
Я написал следующий блок кода:
DATASEG
Result db ?
Modulo db ?
var3 db -9
var4 db 2
CODESEG
start:
mov ah, 0
mov al, [var3]
mov bl, [var4]
div bl
mov [Result], al
mov [Modulo], ah
я получаю неправильный результат для -9/2. Результат: «7B», кажется, что он относится к «F7» как 247.
Как я могу сделать это правильно, все еще определяя var3 как databyte (db)?
Или, есть ли другой способ?
Спасибо за ответы
См [справочную страницу для 'DIV'] (http://x86.renejeschke.de/html/file_module_x86_id_72. HTML). он говорит * unsigned divide *. – lurker
Подсказка по кодированию языка сборки: если инструкция, похоже, не делает то, что вы ожидаете, прочитайте инструкцию по набору инструкций * тщательно *. Обычно эта инструкция выполняет то, что она предназначена, и проблема заключается в вашем понимании этого. –