Програмування циклічних та типових програм на Асемблері для мікропроцесора КР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 0 0 → 0 0 0 → 0
0 ^ 1 → 0 0 1 → 1 0 1 → 1
1 ^ 0 → 0 1 0 → 1 січня 0 → 1
1 ^ 0 → 0 1 1 → 0 1 1 → 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.
Використовуючи отримані числа, складемо програму, наберемо програму на ЕОМ, і отримаємо результат.
8500 04
8501 08
8502 06
8503 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
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
121.9кб. | скачати


Схожі роботи:
Програмування арифметичних завдань на Асемблері для мікропроцесора К580
Структурне програмування на асемблері
Складання програм для вирішення задач на мові програмування Turbo Pascal
Конвертування вихідного тексту програм для верстатів з ЧПК з однієї системи програмування в іншу
Програмний кодер декодер для циклічних nk кодів
Програмний кодер-декодер для циклічних nk-кодів
Розробка програм у середовищі програмування Turbo Pascal 7 0
Розробка програм у середовищі програмування Turbo Pascal 70
Можливості та перспективи використання ильменей типових водойм аридної зони для створення
© Усі права захищені
написати до нас