Цель работы: изучение приемов программирования.
Рисунок 6. Главное окно программы.
Задание первое. Для микропроцессора К580 составить блок-схему алгоритма нахождения суммы целых положительных чисел в массиве из 10 элементов: 7,8,…16.
Задание второе. Составить и запустить программу, реализующую данный алгоритм.
Задание третье. Записать протокол оттранслированной программы.
Задание четвертое. Посчитать время выполнение программы (для fт=2 МГц) и количество байт, занимаемое программой.
Содержимое главного окна программы:
Главное меню программы;
Структурная схема МП-системы;
Таблица содержимого ОЗУ МП-системы;
Внешние периферийные устройства, подключенные к портам МП-системы;
Панель редактирования значений выбранной (текущей) ячейки ОЗУ МП-системы;
Панель редактирования значений содержимого выбранного регистра общего назначения (РОН) МП-системы;
Группа кнопок «Сброс» для обнуления всех ячеек ОЗУ и регистров общего назначения (РОН) МП-системы;
Панель системы команд МП КР580ВМ80А (скрытый вид);
Группа кнопок «Выполнение» для выполнения программы МП-системой в сквозном, командном и тактовом режимах.
В поле окна 3 разместите программу третьего задания в машинных кодах начиная с адреса 1100Н. Используя группу кнопок поля 9 выполнить программу в сквозном, командном и тактовом режимах.
Цель работы: Разработка программы сортировки
Задание. Для выбранного варианта задачи составить структурную схему алгоритма и написать программу, реализующую заданный алгоритм (для микропроцессора К580).
Задача. Микропроцессорное устройство - контроллер –
должно работать в циклическом режиме и предназначено для сортировки изделий по контролируемому параметру.
Критерии для оценки параметра PAR:
- PAR – «Брак»;
- S3 ≤ PAR < S2 - 3-й сорт;
- S2 ≤ PAR < S1 - 2-й сорт;
- S1 ≤ PAR -1-й сорт.
Значение контролируемого параметра считывается из порта ввода номер X . Сортность изделия выдается в порт вывода номер Y в виде кода 01Н, 02Н, 03Н или 00Н для 1-го, 2-го,3-го сортов или "Брака" соответственно. Количество бракованных изделий и изделий 1-го, 2-го и 3-го сортов должно запоминаться в ячейках памяти с номерами 2000 Н, 2001 Н, 2002 Н и 2003 Н соответственно.
Таблица 3
Номер варианта |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
X |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
Y |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
S1 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
S2 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
S3 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
|
|
|
|
|
|
|
|
|
|
|
Продолжение табл. 3 |
||||||||||
Номер варианта |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
X |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
Y |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
S1 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
S2 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
100 |
S3 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
ПРИЛОЖЕНИЕ 1
Таблица П.1.1
Мнемокод команды |
Описание команды |
Длина команды байт |
Изменяемые флаги |
Число тактов |
INR r |
Увеличение содержимого регистра r на единицу |
1 |
Z, S, P, AC |
5
|
INR М |
Увеличение на единицу содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, AC |
10 |
DCR r |
Уменьшение содержимого регистра r на единицу |
1 |
Z, S, P, AC2 |
5 |
DCR М
|
Уменьшение на единицу содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1
|
Z, S, P, AC2 |
10 |
МОV r1,r2 |
Пересылка данных из регистра r2 в регистр r1 |
1
|
- |
5 |
МОV М, r |
Пересылка данных из регистра r в ячейку памяти по адресу, указанному в регистрах Н и L |
1
|
- |
7
|
МОV г, М
|
Пересылка данных в регистр r из ячейки памяти по адресу, указанному в регистрах Н и L |
1
|
- |
7
|
АDD r
|
Суммирование содержимого регистра r и содержимого аккумулятора |
1
|
Z, S, P, C, AC |
4
|
АDD М
|
Суммирование содержимого ячейки памяти по адресу, указанному в регистрах Н и L, с содержимым аккумулятора |
1
|
Z, S, P, C, AC |
7
|
|
|
|
|
|
Продолжение табл. П.1.1
|
||||
АDС r |
Сложение с учетом переноса содержимого регистра r и содержимого аккумулятора |
1
|
Z, S, P, C, AC |
4
|
АDС М |
Сложение с учетом переноса содержимого ячейки памяти по адресу, указанному в регистрах Н и L, с содержимым аккумулятора |
1
|
Z, S, P, C, AC |
7
|
SUB r |
Вычитание содержимого регистра r из содержимого аккумулятора
|
1 |
Z, S, P, C1, AC2 |
4
|
SUB M |
Вычитание из содержимого аккумулятора содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C1, AC2 |
7
|
SВВ r |
Вычитание с заемом содержимого регистра r из содержимого аккумулятора |
1 |
Z, S, P, C1, AC2 |
4
|
SВВ М |
Вычитание с заемом из содержимого аккумулятора содержимого ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C1, AC2 |
7
|
ANA r |
Поразрядное И над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
АNА М |
Поразрядное И над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
|
|
|
|
|
|
||||
Продолжение табл. П.1.1
ХRА r |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
ХRА М |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
ОRА r |
Поразрядное ИЛИ над содержимым регистра r и аккумулятора |
1 |
Z, S, P, C=0, AC=0 |
4
|
ORА М |
Поразрядное ИЛИ над содержимым аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
Z, S, P, C=0, AC=0 |
7
|
СМР r |
Сравнение содержимого регистра r и аккумулятора Уменьшение на единицу содержимого пары |
1 |
(Z, S, P, C, AC)3 |
4 |
СМР М |
Сравнение содержимого аккумулятора и ячейки памяти по адресу, указанному в регистрах Н и L |
1 |
(Z, S, P, C, AC)3 |
7 |
INX rp |
Увеличение на единицу содержимого пары регистров rр (В, D, Н, SР) |
1 |
- |
5 |
DCX rp |
Уменьшение на единицу содержимого пары регистров rр (В, D, Н, SР) |
1 |
- |
5 |
Продолжение табл. П.1.1
DАD rр |
Сложение содержимого пары регистров rр (В, D, Н, SР) с содержимым пары регистров Н и L и хранение результата в Н и L |
1 |
- |
10 |
РОР rр |
Выдача данных из стека в пару регистров rр (В, D, Н) или в аккумулятор и регистр признаков PSW |
1 |
(Z, S, P, C, AC)6 |
10 |
РUSН rp |
3анесение в стек содержимого пары регистров rр (В, D, Н) или содержимого аккумулятора и регистра признаков PSW |
1 |
- |
11 |
SТАХ rр |
Запись содержимого аккумулятора в ячейку памяти, косвенно адресуемую парой регистров rр (В, D) |
1 |
- |
7 |
LDАХ rр |
Запись в аккумулятор содержимого ячейки памяти, косвенно адресуемой парой регистров rр (В, D) |
1 |
- |
7 |
RNZ |
Возврат из подпрограммы при отсутствии нуля (флаг нуля в состоянии 0) |
1 |
- |
5/11 |
RZ |
Возврат из подпрограммы при наличии нуля (флаг нуля в состоянии 1) |
1 |
- |
5/11 |
RZС
|
Возврат из подпрограммы при отсутствии переноса (флаг переноса в состоянии 0) |
1 |
- |
5/11 |
|
|
|
|
|
Продолжение табл. П.1.1
RC |
Возврат из подпрограммы при наличии переноса (флаг переноса в состоянии 1) |
1 |
- |
5/11 |
RРО |
Возврат из подпрограммы при отсутствии четности (флаг четности в состоянии 0) |
1
|
-
|
5/11
|
RРЕ |
Возврат из подпрограммы при наличии четности (флаг четности в состоянии 1) |
1
|
-
|
5/11
|
RР |
Возврат из подпрограммы при положительном результате (флаг знака в состоянии 0) |
1
|
- |
5/11
|
RМ
|
Возврат из подпрограммы при отрицательном результате (флаг знака в состоянии 1) |
1
|
- |
5/11
|
RЕТ
|
Безусловный возврат из подпрограммы |
1
|
-
|
5/11
|
RLС
|
Циклический сдвиг содержимого аккумулятора влево |
1
|
C4
|
4
|
RRС
|
Циклический сдвиг содержимого аккумулятора вправо |
1
|
C4
|
4
|
|
|
|
|
|
Продолжение табл. П.1.1
RAL |
Циклический сдвиг содержимого аккумулятора влево, включая флаг переноса |
1
|
C4
|
4
|
RAR |
Циклический сдвиг содержимого аккумулятора вправо, включая флаг переноса |
1
|
C4
|
4
|
ХСНG
|
Обмен данными между парами регистров Н, L и D, Е |
1
|
-
|
4
|
ХТНL |
Обмен данными между двумя верхними ячейками стека и парой регистров Н, L (сначала самая верхняя обменивается с L, затем следующая с Н) |
1
|
-
|
18
|
SРНL
|
Передача в указатель стека содержимого регистров Н и L |
1
|
-
|
5
|
PCHL |
Передача в счетчик команд содержимого пары регистров Н и L с последующим выполнением программы с адреса, равного новому содержимому счетчика команд (по существу команда перехода) |
1
|
- |
5 |
HLT |
Останов программы |
1 |
- |
7 |
NOP |
Отсутствие операции |
1 |
- |
4 |
DI |
Запрет на прерывание программы |
1 |
- |
4 |
|
|
|
|
|