7.Двоичная и двоично-десятичная арифметика. Форматы представления BCD-чисел.

Двоично-десятичные числа

Двоично-десятичные - специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех бит. При этом каждый байт числа содержит одну или две десятичные цифры в так называемом двоично-десятичном коде (BCD - Binary-Coded Decimal).

Ассемблер позволяет задавать BCD-числа в двух форматах

Двоично-десятичные числа складывают по правилам двоичного сложения. Однако
двоичное сложение может иногда давать неверный результат и тогда приходится выполнять коррекцию результата.
Коррекция заключается в прибавлении кода 0110 к тем тетрадам результата в которых либо:
а. Получен код не имеющий смысла в двоично-десятичной системе (например 1100);
б. Был сформирован межтетрадный перенос в старшую тетраду.
Если отдельные тетрады скрорректированного результата все еще содержат запрещенные коды, то их подвергают повторной коррекции.

Вычитание двоично-десятичных чисел производится по правилам двоичного вычитания с вводимой в необходимых случаях коррекцией результата. Такая коррекция заключается в вычитании кода 0110 из тех тетрад результата, которые использовали межтетрадный заем.

Специальных арифметических команд для двоично-десятичных чисел процессор не содержит. Для выполнения арифметических операций с двоично-десятичными числами используются команды двоичной арифметики, результат исполнения которых корректируется с помощью специальных функций, представленных в табл. 1.
Наличие двоично-десятичных чисел и действий с ними позволяет решить проблему работы с длинными числами.

Примечание: команды amm и aad часто используются для преобразования чисел из двоичной формы представления в двоично-десятичную, и обратно.

Команды преобразования типов

В том случае если в арифметических операциях участвуют данные различных типов их необходимо преобразовать к одному типу. Операции преобразования типов выполняют команды представленные в табл. 2.