Win32asm обучение


Урок 8 - Кое-что о числах - часть 2


imul и idiv

Imul также имеет преимущества над mul, так как может принимать непосредственные значения:


imul множитель

imul множимое, множитель

imul результат, множимое, множитель

imul результат, множимое

idiv делитель

Они такие же, как mul и div, но только производят вычисления с числами со знаком. Сравнение можно производить так же, как и с чилами без знака, но состояния флагов будут другими. Следовательно есть разные команды переходов, для чисел со знаком и без знака:

cmp ax, bx

ja смещение

Ja это без знаковый переход. Переход если 'больше'. Представте, что ax = FFFFh (без знака это FFFFh, а со знаком это -1), а bx = 0005h (без знака это 5 и со знаком это тоже 5). Так как FFFFh больше, чем значение (без знака) 0005, ja-команда выполнит переход. Но если использовать команду jg (которая является переходом со знаком):

cmp ax, bx

jg смещение

jg-команда не выполнит переход, потому, что -1 меньше, чем 5.

Просто запомните:

Разница в числах со знаком или без знака только в том,
как вы эти числа будете обрабатывать.

[наверх]




- Начало -  - Назад -  - Вперед -



Книжный магазин