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.
Просто запомните:
Разница в числах со знаком или без знака только в том,
как вы эти числа будете обрабатывать.
[наверх]
Содержание Назад Вперед