Учебная работа. Лабораторная работа: Программирование арифметических задач на Ассемблере для микропроцессора К580
Лабораторная работа № 3
АКГ-05
АУТПТЭК
Программирование арифметических задач на Ассемблере для процессора К580
Цель лабораторной работы — разглядеть индивидуальности выполнения простых арифметических операций над целыми числами без знака на микропроцессорных установках МИКРОЛАБ КР580ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения)80 и ЭЛЕКТРОНИКА-580, познакомиться с программированием в машинных кодах и мнемокодах, научиться воспользоваться средствами управления и клавиатурой устройств.
1 ТЕОРЕТИЧЕСКАЯ часть
1.1 Представление чисел
При программировании микро ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) на МП БИС КР580ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения)80 нужно воспользоваться методом представления чисел с фиксированной десятичной точкой. При всем этом символ числа и количество разрядов, занятых дробной частью числа, могут быть учтены при подготовке данных либо программным методом.
Следует держать в голове, что коды установок, адреса и данные вводятся в микро ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) числами в шестнадцатеричной системе счисления. Некой индивидуальностью в лабораторных установках МИКРОЛАБ и ЭЛЕКТРОНИКА-580 является отображение чисел на мониторе (табл. I).
Для МП БИС КР580ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения)80 можно представлять данные в виде двоично-десятичного числа, при всем этом любой б рассматривается как две тетрады (два полубайта), а любая тетрада шифрует одну десятичную цифру.
Такое внимание на то, что, используя для представления шестнадцатеричную систему счисления, в одном б можно закодировать число от 0 до FF , что соответствует числам десятичной системы от 0 до 255.
Эти примеры демонстрируют, что такое программка.
Таблица 1- 1.2
Арифметические
команды
Главный арифметической функцией является сложение 2-ух чисел. Команда, имеющая мнемокод ADD Rд, складывает данные регистра Rд и аккума (регистра А) и итог сложения запоминает в аккуме.
— CARRY — регистра признаков. Разряд (флаг) переноса играет огромную роль при выполнении процессором арифметических операций и работает девятым разрядом аккума. По флагу командами IC и INC можно выполнить переход. Применяется он так же при сложении чисел длиннее восьми разрядов, выполняя функции связи меж 2-мя б записи числа.
О состоянии флага переноса, как и остальных флагов регистра признаков в МИКРОЛАБе может сказать ячейка памяти с адресом 83ЕА, где флаги записываются в последовательности, приведенной на рисунке 1.1.
В «ЭЛЕКТР0НИКЕ-580» разряд С высвечивается на панели установки.
Набросок 1.1 — Флаги № ШС КР580ИКБ0
Вычитание содержимого регистра Rд из содержимого аккума производит команда SUB Rд. к примеру, команда SUB B вычитает из аккума данные регистра В.
Команда вычитания употребляет флаг переноса как разряд заема. Если флаг переноса устанавливается опосля команды SUB Rд, означает, число в регистре Rд больше, чем в аккуме.
Опосля выполнения команды SUB Rд итог остается в аккумуляторе, вызов содержимого которого на индикатор регистра данных осуществляется адресом 83ЕВ в «МИКРОЛАБе» и кнопками REC, А в «ЗЛЕКТРОНИКЕ-580».
1.
3
программка
сложения
2-ух
однобайтных
чисел
X
и
У
Задачка заключается в том, чтоб, выполнив занесение однобайтных чисел в регистры А и Rд, сложить их и поместить итог сложения в аккумулятор.
Задайтесь числовыми значениями Х = 38, Y = А3 и исходным адресом программки, приняв его равным 8200.
Обратите внимание на то, что все приведенные числа записаны в шестнадцатеричной системе счисления.
Включите лабораторную установку и, пользуясь листингом программки, приведенным в табл. 2, запишите в память ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) по обозначенным адресам коды установок.
Таблица 1.2 — программка PRG 1 сложения 2-ух однобайтных чисел
Адресок
Код команды
Метка
Мнемокод
Комментарий
8200
AF
PRG 1:
ХRА А
Очистить аккумулятор
8201
ЗЕ
MVI A, 38
Записать в аккумулятор
8202
38
число X
8203
06
MVI B, A3
Записать в регистр В
8204
A3
число У
8205
80
ADD 8
Сложить X и Y
8206
E7
RST 7
Оборвать выполнение программки
Выполнив запись программки, установите исходный адресок и запустите программку. Опосля её выполнения на мониторе установится запись: 8207 DB_ _, показывающая итог вычисления DB по адресу 8207.
Для получения разности 2-ух чисел X и Y можно применять программку PRG 1, заменив в ней по адресу 8205 код команды 80 (ADD B) кодом 90 (SUB В) команды вычитания содержимого регистра В из содержимого аккума, разместив за ранее в регистрах В и А соответственно вычитаемое и уменьшаемое. Разность будет записана в аккуме.
1.4 Сложение массива однобайтных чисел
Массив однобайтных шестнадцатеричных чисел, к примеру, 31, АВ, 86, разместите в поочередных адресах памяти, к примеру, 8250, 8251, 8252, 8253.
В качестве входных характеристик для выполнения программки необходимо иметь адресок первого слагаемого, к примеру, 8250, записанный в регистрах H, L, и число слагаемых — в регистре С. Выходным параметром будет являться сумма, старший б которой записан в регистре В, а младший б — в аккуме.
Таблица 1.3 – программка PRG 2 сложения массива однобайтных чисел
Адресок
Код
команды
Метка
Мнемоника
Комментарий
8200
8201
8202
21
50
82
PRG 2:
LXI H,8250
Загрузить в регистры HL, адресок первого слагаемого
8203
8204
0E
04
MVI C, 04
Загрузить в регистр С количество слагаемых
8205
AF
XRA A
Очистить аккумулятор
8206
47
MOV B, A
Очистить регистр В
8207
86
M1:
ADD M
Прибавить к содержимому аккума число из массива слагаемых
8208
8209
820А
D2
0D
82
INC M2
Если переноса нет, то идти на М2
820В
820С
04
B7
INR B
ORA A
Прирастить содержимое регистра В на I
Очистить флаг переноса
820D
23
M2:
INX H
Указать на последующий адресок слагаемого
820E
0D
DCR C
Уменьшить содержимое регистра С на I
820F
8210
8211
C2
07
82
INZ
Если не все слагаемые, то идти на MI
8212
FF
RST 7
Оборвать выполнение программки
Выполнение программки с именованием PRG 2 начинается с команды загрузки регистровой пары HL, 16-битным числом 8250 (адресок первого слагаемого). Опосля выполнения 2-ой команды (адреса 820З, 8204) в регистре С запишется число 4 (число слагаемых). Командами 8205 и 8206 делается обнуление регистров А, В и регистра признаков.
Командой 8207 с меткой MI начинается 1-ый цикл шага суммирования. В итоге выполнения данной команды в регистр А заносится 1-ое слагаемое (число 31) по адресу 8250, записанное в регистровой паре HL.
Потому что переполнения аккума нет, по команде 8208 осуществляется переход на метку М2 (адресок команды 820С), и к содержимому регистровой пары HL прибавляется I. сейчас тут записан адресок 8251 второго слагаемого.
Опосля выполнения команды 820Е число слагаемых (содержимое регистра С) становится равным 3 и по команде 820F осуществляется переход на MI- начало последующего цикла шага суммирования.
Во 2-м цикле в регистр А записывается сумма DC чисел 31 и АВ, флаг переноса не устанавливается, миниатюризируется число слагаемых регистра С до 2.
В 3-ем цикле в аккумулятор записывается 62 (младший б суммы чисел DC и 86) и устанавливается флаг переноса С. По команде 8208 осуществляется переход по адресу 820В и в регистр В записывается I. содержимое регистровой пары HL равно 8253, содержимое регистра С – I.
В четвертом цикле опосля выполнения команды 8207 в аккумулятор записывается 56, флаг переноса установлен, содержимое регистра В равно 2.
По команде 820(Е) содержимое регистра С становится равным 0, и команда 820F передает управление адресу 8212 — конец выполнения программы.
1.5 Вычитание схожих по длине чисел
Разглядите программку получения разности 2-ух чисел X и Y, имеющих схожую длину. Листинг программки приведен в табл. 1.4.
Входными параметрами программки будут являться: длина чисел в б, записанная в регистре В, адресок младшего б вычитаемого — в регистровой паре HL, адресок младшего б уменьшаемого — в регистровой паре DE . Итог вычисления заносится в область памяти, отведенную под вычитаемое.
Положим X = А304 и Y = 7E2I,
B области памяти записывается по адресам
8250 — 04 (младший б уменьшаемого);
8251 — A3 (старший б уменьшаемого);
8252 — 21 (младший б вычитаемого);
8253 – 7E (старший б вычитаемого).
В регистре B записано 2 — длина чисел X и Y в б.
Таблица 1.4 – программка PRG 3 вычитание чисел
Адресок
Код
команды
Метка
Мнемоника
Комментарий
8200
8201
06
02
PRG 3:
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
FF
RST 7
Оборвать выполнение программки
Обратите внимание на то, что по адресу 820А записана команда SBB. Она различается от аналогичной команда SUB М тем, что из содержимого аккума вычитается не только лишь число, записанное в ячейке М по адресу, лежащему в регистровой паре HL, да и признаков.
1.6 Сложение многобайтовых десятичных чисел
В табл. 1.5 приведен листинг программки сложения чисел, представляемых в МП БИС КР580ИК (то есть тепловое, инфракрасное, на основе инфракрасного излучения)80 в виде двоично-десятичных чисел. Потому что такое машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) преобразования данных, в программку нужно ввести оператор DAA, который делает корректировку результата операции по последующим правилам:
если признак доп переноса АС равен I, то к содержимому аккума добавляется число 6;
если признак переноса С равен I, то к содержимому старших 4 бит аккума добавляется число 6.
Заметьте, что в предлагаемой программке, как и в предшествующей, рассматриваются числа с длиной больше машинного слова. Потому операции с таковыми числами МП БИС проводят по б, начиная с младших байтов.
Разглядите программку с именованием PRG 4 для слагаемого Х=3045, расположенного побайтно в ячейках памяти 8050 и 8051, и слагаемого Y = 2071 — в ячейки памяти 8052 и 8053. Итог сложения располагается в ячейках, отведенных для второго слагаемого.
Опосля выполнения программки вызовите поочередно ячейки 8053 и 8052 и запишите их содержимое. Это итог решения. Он должен быть равен десятичному числу 5116.
Таблица 1.5 — программка PRG 4 сложения 2-ух десятичных чисел
Адресок
Код
команды
Метка
Мнемоника
Комментарий
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
Указать на адресок последующих 2-ух разрядов числе Y
820E
23
INX H
Указать на адресок последующих 2-ух разрядов числе Х
820F
OD
DCR C
Уменьшить содержимое счетчика числа байтов
8210
8211
8212
C2
09
82
INZ M1
Если не крайний (старший) б, то идти на MI
8213
FF
RST 7
Оборвать выполнение программки
2 ЭКСПЕРИМЕНТАЛЬНАЯ часть
2.1 Выполним программку получения суммы 2-ух чисел
X=A+B, имеющих схожую длину. Листинг программки приведен в таблице 2.1.
A= B=
Итог сложения заносится в область памяти, отведенную под 2-ое слагаемое.
В области памяти записывается по адресам
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
Указать на адресок последующих 2-ух разрядов числа В
820E
23
INX H
Указать на адресок последующих 2-ух разрядов числа А
820F
OD
DCR C
Уменьшить содержимое счетчика числа байтов
8210
8211
8212
C2
09
82
INZ M1
Если не крайний (старший) б, то идти на МI
8213
E7
RST 7
Оборвать выполнение программки
2.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, познакомились с программированием в машинных кодах и мнемокодах, научились воспользоваться средствами управления и клавиатурой устройств.
]]>