1.6 Сложение многобайтовых десятичных чисел

В табл. 1.5 приведен листинг программы сложения чисел, представляемых в МП БИС КР580ИК80 в виде двоично-десятичных чисел. Так как такое представление чисел требует от ЭВМ преобразования данных, в программу необходимо ввести оператор DAA, который выполняет коррекцию результата операции по следующим правилам:

если значение младших 4 бит аккумулятора больше девяти или если признак дополнительного переноса АС равен I, то к содержимому аккумулятора добавляется число 6;

если значение старших 4 бит аккумулятора больше девяти или если признак переноса С равен I, то к содержимому старших 4 бит аккумулятора добавляется число 6.

Заметьте, что в предлагаемой программе, как и в предыдущей, рассматриваются числа с длиной больше машинного слова. Поэтому операции с такими числами МП БИС проводят по байтам, начиная с младших байтов.

Рассмотрите программу с именем PRG 4 для слагаемого Х=3045, размещенного побайтно в ячейках памяти 8050 и 8051, и слагаемого Y = 2071 - в ячейки памяти 8052 и 8053. Результат сложения размещается в ячейках, отведенных для второго слагаемого.

После выполнения программы вызовите последовательно ячейки 8053 и 8052 и запишите их содержимое. Это результат решения. Он должен быть равен десятичному числу 5116.


Таблица 1.5 - Программа PRG 4 сложения двух десятичных чисел

Адрес

Код

команды

Метка Мнемоника Комментарий

8200

8201

8202

21

50

82

PRG 4: LXI H, X Загрузить в регистры младшие два разряда числа Х

8203

8204

8205

I I

52

80

LXI D, Y Загрузить в регистры младшие два разряда числа Y
8206 AF XRA A Очистить аккумулятор

8207

8208

0E

02

MVI C, 02 Загрузить счетчик числа байтов
8209 IA M1: LDAX D Загрузить в аккумулятор два разряда числа Y
820A 8E ADC M Прибавить к содержимому аккумулятора два разряда числа Х с учетом переноса
820В 27 DAA Преобразовать результат в десятичный код
820C 12 STAX D Передать результат в ячейку памяти, адресуемой регистровой парой DE
820D 13 INX D Указать на адрес следующих двух разрядов числе Y
820E 23 INX H Указать на адрес следующих двух разрядов числе Х
820F OD DCR C Уменьшить содержимое счетчика числа байтов

8210

8211

8212

C2

09

82

INZ M1 Если не последний (старший) байт, то идти на MI
8213 FF RST 7 Прервать выполнение программы

2 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

2.1 Выполним программу получения суммы двух чисел

 X=A+B, имеющих одинаковую длину. Листинг программы приведен в таблице 2.1.

A= B=

Результат сложения заносится в область памяти, отведенную под второе слагаемое.

В области памяти записывается по адресам

8250 – 87 (младший байт первого слагаемого)

8251 – 35 (старший байт первого слагаемого)

8252 – 87 (младший байт второго слагаемого)

8253 – 02 (старший байт второго слагаемого)

Таблица 2.1 – Программа сложения массива однобайтных чисел

Адрес

Код

команды

Метка Мнемоника Комментарий

8200

8201

8202

21

50

82

PRG 1: LXI H, X Загрузить в регистры младшие два разряда числа А

8203

8204

8205

11

52

80

LXI D, Y Загрузить в регистры младшие два разряда числа В
8206 AF XRA A Очистить аккумулятор

8207

8208

OE

02

MVI C, 02 Загрузить счетчик числа байтов
8209 1A M1: LDAX D Загрузить в аккумулятор два разряда числа А
820А 8E ADC M Прибавить к содержимому акумулятора два разряда числа В с учетом переноса
820В 27 DAA Преобразовать результат в десятичный код
820C 12 STAX D Передать результат в ячейку памяти, адресуемой регистровой парой DE
820D 13 INX D Указать на адрес следующих двух разрядов числа В
820E 23 INX H Указать на адрес следующих двух разрядов числа А
820F OD DCR C Уменьшить содержимое счетчика числа байтов

8210

8211

8212

C2

09

82

INZ M1 Если не последний (старший) байт, то идти на МI
8213 E7 RST 7 Прервать выполнение программы

2.2 Выполним программу получения разности двух чисел C и D

Листинг программы приведен в таблице 2.2.

Входными параметрами программы будут являться: длина чисел в байтах, записанная в регистре В, адрес младшего байта вычитаемого – в регистровой паре HL, адрес младшего байта уменьшаемого – в регистровой паре DE. Результат вычисления заносится в область памяти, отведенную под вычитаемое. C=, D=. В регистре В записано 2 – длина чисел C и D в байтах. В области памяти записывается по адресам

8250 – Е1 (младший байт уменьшаемого);

8251 – 37 (старший байт уменьшаемого);

8252 – 75 (младший байт вычитаемого);

8253 – 08 (старший байт вычитаемого);

В регистре В записано 2 – длина чисел C и D в байтах.

Таблица 1.4 – Программа PRG 2 вычитание чисел

Адрес

Код

команды

Метка Мнемоника Комментарий

8200

8201

06

02

PRG 2: MVI B, 02 Загрузить счетчик длины числа

8202

8203

8204

I I

50

82

LXI D, X Загрузить в регистры D, E адрес младшего байта уменьшаемого

8205

8206

8207

21

52

C2

LXI M, V Загрузить в регистры H, L адрес младшего байта вычитаемого
8208 AF XRA A Очистить аккумулятор
8209 IA M1: LDAX D Загрузить в аккумулятор уменьшаемое
820A 9E SBB M Вычесть из содержимого аккумулятора вычитаемое
820В 77 MOV M, A Записать разность на место вычитаемого
820C I3 INX D Указать на следующий байт уменьшаемого
820D 23 INX H Указать на следующий байт вычитаемого
820E 05 DCR B Уменьшить содержимое счетчика длины числа

820F

8210

8211

02

09

82

INZ M1 Если не последний (старший) байт, то идти на MI
8212 Е7 RST 7 Прервать выполнение программы

ВЫВОД

В ходе лабораторной работы рассмотрели особенности выполнения простейших арифметических операций над целыми числами без знака на микропроцессорных установках МИКРОЛАБ КР580ИК80 и ЭЛЕКТРОНИКА -580, познакомились с программированием в машинных кодах и мнемокодах, научились пользоваться средствами управления и клавиатурой устройств.


Информация о работе «Программирование арифметических задач на Ассемблере для микропроцессора К580»
Раздел: Информатика, программирование
Количество знаков с пробелами: 15284
Количество таблиц: 8
Количество изображений: 1

Похожие работы

Скачать
29613
4
3

... = 5 е – ( t2 / t2 ) ; t2 = - t2 ln 0.5 = 0.144 мкс. При R = 1 кОм С = t / R » 144 пФ. 2. Определение общего алгоритма функционирования устройства Работу цифрового фильтра определяет программа, состоящая из инструкций, предназначенных для микропроцессора, и хранящаяся в ПЗУ независимо от наличия питающего напряжения. Поскольку ПЗУ – единственное устройство, способное хранить информацию при ...

Скачать
104875
16
25

... , В 3. Активное сопротивление, Ом «1» «10» «100» «1000» «1» «10» «100» «1000» «1» «10» «100» «1000» «10м» 2.2 Программное обеспечение тестирования устройства Программа тестирования ПЗУ по методу контрольной суммы LXI B 0040h ; Загрузить в ВС начальный адрес ПЗУ MVI D ...

0 комментариев


Наверх