URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10461
[ Назад ]

Исходное сообщение
"nasm, деление"

Отправлено ivan , 24-Сен-23 08:42 
Добрый день.
Потребовалось выполнить деление на 1 со знаком.
mov eax, 0
mov ebx, 0
mov, ax, 0xc9
mov bl, 1
idiv bl
Получил исключение. Если вместо 8 битного операнда использовать 16 битовый
idiv bx
то все хорошо.
В чем причина? 0xc9 / 1 = 0xc9 и должно поместиться в al

Содержание

Сообщения в этом обсуждении
"nasm, деление"
Отправлено ivan , 24-Сен-23 12:20 
>[оверквотинг удален]
> mov eax, 0
> mov ebx, 0
> mov, ax, 0xc9
> mov bl, 1
> idiv bl
> Получил исключение. Если вместо 8 битного операнда использовать 16 битовый
> idiv bx
> то все хорошо.
> В чем причина? 0xc9 / 1 = 0xc9 и должно поместиться в
> al

Вопрос закрыт. Причина - изменение знака результата. 0xc9 в AL - трактуется как отрицательное.