Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Команды десятичной арифметики




Для коррекции результатов арифметических действий используются следующие команды:

ААА – корректирует сумму двух неупакованных двоично-десятичных чисел в AL. Если коррекция приводит к десятичному переносу, АН увеличивается на 1. Эта команда имеет смысл сразу после команды сложения двух таких чисел. Например, если при сложении 05 и 06 в АХ окажется число 00bh, то команда ААА скорректирует его в 010lh (неупакованное десятичное 11). Флаги CF и OF устанавливаются в 1, если произошел перенос из AL в АН, иначе они равны нулю. Значения флагов OF, SF, ZF и PF не определены,

АAS – корректирует разность двух неупакованных двоично-десятичных чисел в AL сразу после команды SUB или SBB. Если коррекция приводит к займу, АН уменьшается на 1. Флаги CF и OF устанавливаются в 1,если произошел заем из AL в АН, и в ноль – в противном случае. Значения флагов OF, SF, ZF и PF не определены.

AAM – Корректирует результат умножения неупакованных двоично-десячных чисел, находящийся в АХ после выполнения команды MUL, преобразовывая полученный результат в пару неупакованных двоично-десятичных чисел (в АН и AL). Например применения команды AAM:

mov al,5

mov bl,5

mul bl; (5*5) – результат в AX – 0019h

aam; теперь в AX – 0205h

AAD – Выполняет коррекцию неупакованного двоично-десятичного числа, находящегося в регистре АХ, так, чтобы последующее деление привело к корректному десятичному результату.

Пример деления десятичных чисел 25 на 5 с использованием AAD:

mov ax,0205h; 25 в неупакованном формате

mov bl,5

aad; теперь в AX – 19h

div bl; AX = 0005

Флаги SF, ZF и PF устанавливаются в соответствии с результатом, OF, AF и CF не определены.

DAA – Если эта команда выполняется сразу после ADD (ADC, INC или XADD) и в регистре AL находится сумма двух упакованных двоично-десятичных чисел, то в результате в AL записывается упакованное двоично-десятичное число, которое должно было быть результатом сложения.

Пример с использованием DAA: если AL содержит число 19h, последовательность команд

incal

daa

приведет к тому, что в AL окажется 20h (а не lAh, как было бы после INC)

DAS – Если эта команда выполняется сразу после SUB (SBB или DEC) и в регистре AL находится разность двух упакованных двоично-десятичных чисел, то в результате в AL записывается упакованное двоично-десятичное число, которое должно было быть результатом вычитания.

Например, если AL содержит число 20h, последовательность команд

dec al

das

приведет к тому, что в AL окажется 19h (а не IFh, как было бы после DEC).

Примеры.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных