The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру