Win32asm обучение


    d8ef8794     

Imul также имеет преимущества над


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.
Просто запомните:

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

Содержание  Назад  Вперед