ТОР 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). Примеры. Не нашли, что искали? Воспользуйтесь поиском:
|