Assembler для начинающих

Десятичная коррекция


    Те же самые команды, что и для чисел в двоичном дополнительном
    коде, используются в программе для работы с числами в
    двоично=десятичном коде BCD.  Однако результат арифметических
    операций может оказаться неправильным для двоично=десятичного
    представления.  Команды десятичной коррекции корректируют
    результат, полученный после действий двоичной арифметики.
 
      Десятичная коррекция для сложения DAA и десятичная коррекция
    для вычитания DAS используются для работы только с упакованными
    десятичными числами. В упакованном десятичном числе каждый байт
    содержит две десятичные цифры. Команды DAA и DAS работают только с
    байтом данных, содержащимся в регистре AL. В связи с этими


    присущими командам ограничени- ями, ни у DAA, ни у DAS операндов
    нет.
 
      На Фиг. 4.12 показаны два примера. В первом примере
    складываются два упакованных десятичных числа. Оба числа состоят из
    двух десятичных цифр, поэтому они представлены единственными
    байтами. В примере складываются эти числа, оставляя результат в
    регистре AL. Непосредственно за этим следует команда DAA, которая
    корректирует результат сложения, преобразуя его в упакованную
    десятичную форму. После команды DAA в регистре AL остается
    правильное упакованное десятичное число в диапазоне 0 - 99. Если
    результат меньше 100, регистр содержит ответ, а флаг переноса
    содержит 0. Если результат находится в диапазоне 100 - 198, то в
    регистре AL остаются две младшие десятичные цифры, а флаг переноса
    установлен равным 1, показывая, что был перенос.

            Microsoft (R) Macro Assembler Version 5.00              1/1/80 04:01:04
            Фиг. 4.12 Пример двоично-десятичной арифметики          Page         1-1
 
 
                                          PAGE    ,132
                                          TITLE   Фиг. 4.12 Пример двоично-десятичной арифметики
             0000                   CODE    SEGMENT
                                          ASSUME  CS:CODE,DS:CODE



Содержание раздела