Система команд микропроцессора КР580вм80а на базе микро-ЭВМ "Электроника 580". Технические характеристики микро-ЭВМ, страница 7

Пример сложения двух чисел приведен в таблице 3.1. Так как результат сложения не превышает число 6553510, эта арифметическая операция может быть выполнена в двойном формате.

При сложении чисел двойного формата сначала складываются их младшие байты. Это делается с помощью обычной команды «сложение», при выполнении которой не используется значение флага переноса. При этом образуется перенос из старшего разряда младшего байта суммы.

Таблица 3.1

Двоичное представление

Десятичное представление

старший байт

младший байт

Первое слагаемое

1100 0111

1011 0000

51 120

Второе слагаемое

0011 0000

1010 1100

12 460

Сумма

1111 1100

0101 1100

63 580

Бит переноса

1

Затем посредством команды «сложение с переносом» производится сложение старших байтов чисел. Поскольку перенос имел место, то он участвует в выполнении команды «сложение с переносом»; если бы перенос из младшего байта не был сформирован, на вход переноса был бы подан 0.

К данной группе команд относятся:

Сложение с учетом переноса с регистром                        ADC r

Сложение с учетом переноса с памятью косвенное       ADC М

Сложение с учетом переноса с непосредственными

данными                                                                                 AСI, данные

3.2.3. Команда десятичной коррекции

Наличие команды «десятичная коррекция» позволяет микропроцессору выполнять некоторые виды обработки двоично-десятичных чисел. Обработка двоично-десятичных чисел часто необходима, когда микропроцессоры используются в простых системах невычислительного характера, для которых характерны ввод и вывод информации в двоично-десятичном коде (binary-decimal code).

Команда «десятичная коррекция» позволяет освободить процессор от дополнительной работы, связанной с преобразованием двоично-десятичных данных в двоичную форму и, таким образом, упростить обработку двоично-десятичных данных в микропроцессорной системе. Ее действие заключается в преобразовании результата двоичного сложения двоично-десятичных чисел в двоично-десятичный код.

Десятичным цифрам от 010 до 910 соответствуют двоичные коды от 00002 до 10012. Все 4-разрядные двоичные числа, превышающие 10012, недопустимы с точки зрения двоично-десятичной системы счисления. Значит, если сумма двоично-десятичных цифр окажется большей чем 10012, то такое число будет недопустимо для использования как двоично-десятичное. Команда «десятичная коррекция» служит для исправления результатов двоично-десятичной обработки, представляющих собой числа, большие чем 10012.

Десятичная коррекция аккумулятора                       DAA

3.3. Задания к лабораторной работе

Задание №1.

Произвести сложение двух чисел 5112010 и 1246010.

Для этого необходимо:

а) указанные числа перевести из десятичного формата в шестнадцатеричный;

б) составить программу вычисления в соответствии со следующим алгоритмом:

1. Загрузить младший байт (МБ) первого слагаемого в аккумулятор.

2. Сложить младший байт второго слагаемого с аккумулятором.

3. Результат (младший байт суммы) записать в память.

4. Загрузить старший байт (СБ) первого слагаемого в аккумулятор.

5. Сложить старший байт второго слагаемого с аккумулятором с учетом бита переноса.

6. Результат (старший байт суммы) записать в память.

7. Останов.

Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 3.1.

Таблица 3.1

Адрес

Содержимое

8000

81FF

Текст программы

8200

МБ 1-го слагаемого

8201

СБ 1-го слагаемого

8202

МБ 2-го слагаемого

8203

СБ 2-го слагаемого

8204

МБ суммы

8205

СБ суммы