- •А.М. Формакидов
- •М.А. Григорьев
- •Содержание
- •Предисловие
- •Описание лабораторного макета
- •Устройство и принцип работы умк
- •Указания мер безопасности
- •Подготовка умк к работе
- •Подготовка к работе макетного тэз м1
- •Теоретическая часть Директива «Индикация и изменение содержимого оперативного запоминающего устройства»
- •Директива «Идентификация и изменение содержимого регистров»
- •Формат директивы:
- •Директива «Заполнение массива памяти константой»
- •Формат директивы:
- •Директива «Определение контрольной суммы массива памяти»
- •Формат директивы:
- •Директива «Перемещение массива памяти в адресном пространстве»
- •Формат директивы:
- •Директива «Передача управления программе пользователя»
- •Формат директивы:
- •Последовательность нажатия клавиш:
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №2 «Исследование простейших команд, запуск и выполнение простых программ»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №3 «Режимы адресации. Исследование выполнения команд арифметических и логических операций»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №4 «Исследование выполнения команд пересылки данных, управления, ввода-вывода и работы со стеком»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №5 «Изучение машинных циклов команд мп кр580вм80а. Выполнение арифметических операций умножения и деления»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №6 «Программирование и режим работы программируемого параллельного интерфейса. Управление клавиатурой и дисплеем с помощью программируемого параллельного интерфейса кр580вв55»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Система команд микропроцессора кр580вм80а
Директива «Передача управления программе пользователя»
Это директива передачи управления программе пользователя. При ее выполнении начинает выполняться программа пользователя, расположенная в ОЗУ.
Для передачи управления программе пользователя необходимо нажать директивную клавишу «СТ» и затем информационными клавишами задать начальный адрес программы в ОЗУ ADR1. Нажать клавишу «└─┘», затем задать адрес первой точки останова ADR2. Вновь нажать клавишу «└─┘» и задать адрес второй точки останова программы ADR3. После нажатия директивной клавиши «ВП» управление передается программе пользователя. Адреса ADR2 и ADR3 воспринимаются программой «Монитор» как адреса команд, при достижении которых выполнение программы пользователя прервется и он может выполнить любую директиву «Монитора». Адреса ADR1, ADR2, ADR3 должны указывать первый байт команды. Если задан только параметр ADR1, управление передается программе пользователя, начиная с этого адреса, без возможности останова программы в какой-либо точке. Указание параметров ADR2 и ADR3 целесообразно при наличии команд условного перехода, когда требуется определить ветвь алгоритма, по которой продолжается исполнение программы. Тогда ADR2 и ADR3 могут указывать на адреса первых команд алгоритмически разных ветвей. Если параметр ADR1 опущен, выполнение программы начнется с текущего значения счетчика команд (РС) и будет прервано в одной из двух точек останова, если они заданы. Если не указан ни один из параметров, то выполнение программы начинается с текущего значения счетчика команд. Именно этой директивой можно продолжить программу после останова. В момент останова (прерывания программы) на дисплей выводится адрес точки останова и запоминается состояние всех регистров МП. Управление передается программе «Монитор», что позволяет пользователю выполнить любую директиву, в частности продолжить выполнение программы. При повторной передаче управления программе пользователя происходит восстановление состояния МП, определенное в момент последнего прерывания.
Формат директивы:
«СТ»_ADR1_«└─┘»_ADR2_«└─┘»_ADR3_«ВП»;
«СТ»_ADR1_«└─┘»_ADR2_«ВП»;
«СТ»_ADR1_«ВП»;
«СТ»_«ВП»,
где ADR1 – начальный адрес программы пользователя в ОЗУ (шестнадцатеричное двухбайтовое число);
ADR2 – адрес первой точки останова программы пользователя (шестнадцатеричное двухбайтовое число);
ADR3 – адрес второй точки останова программы пользователя (шестнадцатеричное двухбайтовое число).
В случае успешного выполнения составленной программы на первых четырех разрядах дисплея индицируются конечный адрес программы и символ «–» в шестом разряде дисплея.
Пример 6. Передать управление программе пользователя с начального адреса 0800Н, установить контрольные точки с адресами 0900Н и 09А5Н. После останова программы в одной из контрольных точек продолжить ее выполнение с прерванного места.
Последовательность нажатия клавиш:
1) «СТ»_0800_«└─┘»_0900_«└─┘»_09А5_«ВП»;
2) «СТ»_«ВП».
Задание для выполнения лабораторной работы
После освоения приемов работы с УМК необходимо по табл. 5 выбрать и выполнить контрольное задание. Номер контрольного задания соответствует номеру подгруппы.
Содержание контрольного задания:
1. Исследовать и зафиксировать в отчете (табл. 6) содержимое ячеек памяти с адресами от ADR1 до ADR2.
2. Определить контрольную сумму этого массива по модулю 256 вручную и с помощью директивы программы «Монитор», сравнить полученные результаты.
3. Переместить исходный массив в новую область памяти ОЗУ начиная с адреса ADR3. Проконтролировать правильность переноса. Убедится в невозможности модификации ячеек памяти ПЗУ.
4. Заполнить массив памяти с адреса ADR4 по ADR5 константой C1. Проконтролировать правильность записи данных.
5. Исследовать и зафиксировать в отчете (табл. 7) содержимое всех регистров микропроцессора.
6. Заполнить содержимое всех регистров константой C2.
7. Заполнить область памяти начиная с адреса ADR6 последовательностью шестнадцатеричных чисел начиная с числа D, количество чисел – N.
8. Передать управление программе пользователя.
8.1. Загрузить в ОЗУ программу 1.1 пользователя (табл. 8).
8.2. Запустить выполнение программы с начального адреса.
8.3. Прервать выполнение программы, проконтролировать результаты работы программы (содержимое регистров микропроцессора, ячеек памяти).
8.4. Запустить выполнение программы с начального адреса, дополнительно указав адрес контрольной точки останова (0809). Убедится, что при выполнении директивы выполнение программы прерывается при достижении указанного адреса точки останова.
8.5. Проверить содержимое регистров МП и ячеек памяти ОЗУ.
8.6. Продолжить выполнение программы с точки останова, используя соответствующую директиву программы «Монитор».
8.7. Убедится, что выполнение программы продолжится с текущего адреса, находящегося в счетчике команд (РС).
8.8. Исследовать работу программы по командам в пошаговом режиме работы УМК.
9. Составить карту памяти микропроцессора (рис. 5). Указать области ПЗУ, ОЗУ, стека программы «Монитор». Дополнительно отметить область памяти для подключения устройств ввода-вывода с начального адреса ADR7 до конечного адреса ADR8 (табл. 5).
Таблица 5
Варианты индивидуальных заданий
|
Номер варианта |
|||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
ADR1 |
0800 |
0810 |
0820 |
0830 |
0840 |
0850 |
0860 |
0870 |
0880 |
0890 |
ADR2 |
0820 |
0830 |
0830 |
0840 |
0850 |
0860 |
0870 |
0880 |
0890 |
08A0 |
ADR3 |
08В0 |
0840 |
0850 |
0860 |
0870 |
0880 |
0890 |
08A0 |
08B0 |
08C0 |
ADR4 |
08С1 |
0900 |
0950 |
0B16 |
0A01 |
0A27 |
0A36 |
0A59 |
0A61 |
0932 |
ADR5 |
08СА |
090А |
0958 |
0B1F |
0A0E |
0A2D |
0A3F |
0A60 |
0A6E |
093F |
ADR6 |
0В02 |
0А11 |
09А0 |
0932 |
09A8 |
09B6 |
0972 |
0999 |
0A01 |
0B03 |
ADR7 |
98 |
C0 |
D5 |
BC |
A0 |
F3 |
E7 |
DE |
81 |
93 |
ADR8 |
9F |
CA |
DD |
C1 |
AB |
FF |
F1 |
E7 |
8B |
A5 |
C1 |
2А |
32 |
3F |
16 |
34 |
2E |
A1 |
E8 |
9D |
B6 |
C2 |
С3 |
48 |
4D |
27 |
3B |
4C |
13 |
4F |
6A |
7F |
D |
DF |
9D |
5A |
43 |
1F |
A2 |
6C |
16 |
1B |
2C |
N |
16 |
12 |
14 |
13 |
15 |
25 |
16 |
21 |
21 |
20 |
Таблица 6
Результаты наблюдений
Адрес |
Данные |
0800 |
FF |
… |
… |
Контрольная сумма по модулю 256 |
|
Таблица 7
Результаты наблюдений
Идентификатор регистра МП |
Данные |
А |
АА |
Таблица 8
Программа 1.1 пользователя
Адрес ЯП |
Данные ЯП |
Метка |
Мнемоника команды |
Операнды |
Комментарии |
0800 |
3Е |
М1 |
MVI A |
00 |
Загрузить в регистр (А) число 00Н |
0801 |
00 |
|
/ |
|
|
0802 |
С6 |
|
ADI |
01 |
Арифметическое сложение содержимого (А) с числом 01Н |
0803 |
01 |
|
/ |
|
|
0804 |
21 |
|
LXI H |
0900 |
Загрузить в регистровую пару (HL) число 0900Н |
0805 |
00 |
|
/ |
|
|
0806 |
09 |
|
/ |
|
|
0807 |
77 |
|
MOV M,A |
|
Пересылка содержимого (А) в ячейку памяти, адрес которой в (HL) |
0808 |
23 |
|
INX H |
|
Увеличение содержимого (HL) на 1 |
0809 |
C3 |
|
JMP |
M1 |
Переход на метку М1 |
080A |
00 |
|
/ |
|
|
080B |
08 |
|
/ |
|
