Программирование циклических и типовых программ на Ассемблере для микропроцессора КР580ИК80
Дон ГТУ
Лабораторная работа № 4
Программирование циклических и типовых программ на Ассемблере для микропроцессора КР580ИК80
Цель лабораторной работы - изучить программирование циклических и типовых программ на Ассемблере для микропроцессора КР580Ик80.
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1. Команды, необходимые для организации разветвлений и циклических структур в программах
1.1 Логические команды над аккумулятором и регистром (табл.1.1)
Имеем в виду, что главным назначением команд этой группы является выработка признаков. Результат логической операции записывается в аккумулятор, заменяя первый операнд.
Таблица 1.1 – Логические команды
Команды
Признаки
Выполняемые функции
Команды
Признаки
Выполняемые функции
Z
N
C
H
P
Z
N
C
H
P
ANAR
+
+
0
+
+
(A)^(R)→A
ANAM
+
+
0
+
+
(A)^(M)→A
ANI Im
+
+
0
0
+
(A)^Im→A
XRAR
+
+
0
0
+
(A)(R)→A
XRI Im
+
+
0
0
+
(A)Im→A
XRAM
+
+
0
0
+
(A)(M)→A
ORAR
+
+
0
0
+
(A)(R)→A
ORI Im
+
+
0
0
+
(A)Im→A
ORAM
+
+
0
0
+
(A)(M)→A
CMPR
+
+
+
+
+
(A)~(R)
CPI Im
+
+
+
+
+
(A)~Im
CMPM
+
+
+
+
+
(A)~(M)
Условные обозначения: R – общее обозначение одного из регистров общего назначения(РОН) – A, B, C, D, E, H, L; M – адрес ячейки памяти, хранящийся в двух смежных РОН H и L; SP – стек; YSP – указатель стека; CzK – счетчик команд; Im – непосредственный операнд; Ag – адрес ячейки памяти, с которой работает данная команда. Запись (R) означает содержимое регистра, нуль в графике «признаки» - установку в нуль при выполнении команды, а плюс – установку признака в соответствии с правилом установки флага.
Помните, что логические операции работают с каждыми из восьми битов независимо.
ANA «и» XRA «искл. или» ORA «или»
0 ^ 0→0 00→0 00→0
0 ^ 1→0 01→1 01→1
1 ^ 0→0 10→1 10→1
1 ^ 0→0 11→0 11→1 1 ^ 1→0
Команда CMP вычитает из содержимого аккумулятора второй операнд (не изменяя оба), формирует признаки по правилам команд вычитания.
1.2 Команды инкрементирования и декрементирования (табл.1.2)
Примите к сведению, что команда INR (инкрементирование) увеличивает на единицу содержимое регистра или байта памяти, а команда DCR (декрементирование) уменьшает на единицу это содержимое. Эти команды не используют и не изменяют значение бита переноса, а остальные биты признаков вырабатывают по общим правилам.
Таблица 1.2 – Инкрементирование и декрементирование
Команды
Признаки
Выполняемые функции
Z
N
C
H
P
INR R
+
+
-
+
+
(R)+1→R
INR M
+
+
-
+
+
(M)+1→R
DCR R
+
+
-
+
+
(R)-1→R
DCR M
+
+
-
+
+
(M)-1→R
1.3 Команды изменения содержимого аккумулятора (табл. 1.3)
Команды этой группы работают только с содержанием аккумулятора, поэтому адресной команды не имеют.
Таблица 1.3 – Изменение содержания аккумулятора
Команды
Признаки
Выполняемые функции
Z
N
C
H
P
RLC
-
-
+
-
-
Am→Am+1, A7→Ao, A7→C
RRC
-
-
+
-
-
Am+1→Am, Ao→A7, Ao→C
RAL
-
-
+
-
-
Am→Am+1, C→Ao, A7→C
RAR
-
-
+
-
-
Am+1→Am, Ao→C1, C→A7
CMA
-
-
+
-
-
, инвертирование
Обратите внимание, что команда RLC устанавливает бит переноса в состояние, равное значению старшего разряда сумматора. Содержимое сумматора циклически сдвигается влево на одну позицию с переносом значения самого старшего разряда в самый младший разряд сумматора.
1.4 Команды изменения признака (флага) переноса
Примите к сведению, что для изменения флага переноса используются две команды: STS – установка в один; CMC – установка в 0.
1.5 Команды условных переходов
Команды условных переходов используют раннее выработанные значения признаков, сами их не изменяют.
Имейте в виду, что если заданное в операции условие выполняется, адрес из второго и третьего блока команды заносится в счетчик команд, т.е. выполнение программы начинается с команд расположенных по этому адресу, в противном случае выполняется следующая по порядку команда
Таблица 1.4 – Команды условных переходов
Команды
Пояснение
JMP Ag
Ag→C2K(безусловный переход к команде Ag)
JC Ag
(C)=1, то Ag→C2K, иначе (С2К)+3→ С2К
JNC Ag
(C)=0, то Ag→C2K, иначе (С2К)+3→ С2К
JZ Ag
(Z)=1, то Ag→C2K, иначе (С2К)+3→ С2К
JNZ Ag
(Z)=0, то Ag→C2K, иначе (С2К)+3→ С2К
JP Ag
(N)=0, то Ag→C2K, иначе (С2К)+3→ С2К(переход по «+»)
JM Ag
(N)=1, то Ag→C2K, иначе (С2К)+3→ С2К(переход по «-»)
JPE Ag
(P)=1, то Ag→C2K, иначе (С2К)+3→ С2К(переход по четности)
2 ЭКСПЕРИМЕНТАЛЬНЫЕ ИСЛЕДОВАНИЯ
Задание: Найти
Заносим в ячейку памяти, начиная с номера 8500, четыре числа I1=4, I2=8, I3=6, I4=3.
Используя полученные числа, составим программу, наберем программу на ЭВМ, и получим результат.
04
08
06
03
Таблица 2.1 – Программа на ассемблере.
Адрес
Код
команды
Метка
Мнемоника
8200
8201
06
04
PRG 1:
MVI B, 4
8202
8203
8204
21
00
85
LXI H, 8500
8205
7E
M1:
MOV A, M
8206
05
M2:
DCR B
8207
8208
8209
CA
12
82
JZ M3
820А
23
INR H
820В
BE
CMP H
820C
820D
820E
DA
05
82
JC M1
820F
8210
8211
C3
06
82
JMP M2
8212
7E
M3:
MOV A, M
8213
5F
MOV E, A
8214
8215
16
MVI D, 03
03
8216
A7
ANA A
8217
8218
8219
21
00
08
LXI H, 0008
821A
821B
DE
00
MVI C, 0
821C
7B
MOV A, E
821D
17
RAL
821E
5A
MOV E, D
821F
79
MOV A, C
8220
17
RAL
8221
92
SUB D
8222
8223
8224
D2
26
82
JNC M5
8225
82
ADD D
8226
4F
M5:
MOV C, A
8227
3F
CMC
8228
7E
MOV A, M
8229
17
RAL
822A
67
MOV H, A
822B
2D
DCR L
822C
822D
822E
C2
13
82
JNZ M4
822F
RST
Нравится материал? Поддержи автора!
Ещё документы из категории информатика:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ