Файл: В.В. Демьянов Изучение системы команд микропроцессора серии К580 на учебно-отладочной микроЭВМ.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.06.2024
Просмотров: 69
Скачиваний: 0
10
индикацию счетчика команд пользователя и адресуемой им ячейки ОЗУ, содержания любого регистра, включая аккумулятор и регистр признаков, содержания регистровых пар, включая указатель стека; индикацию стека; ввод программы и данных в ОЗУ с клавиатуры; ввод команд с клавиатуры; запись информации в регистры общего назначения; ввод контрольных точек и контрольный прогон программы; запуск программы на исполнение; индикацию ошибок; сброс микроЭВМ в исходное состояние; вывод программы и данных в ячейках ОЗУ на магнитофон и считывание программ с магнитофона в ОЗУ; отдельный вывод на индикацию признаков нуля и переноса из регистра признаков аккумулятора.
После пуска или общего сброса счетчик команд пользователя устанавливается по адресу 8200, а вершина стека устанавливается равной
83Е0.
Стек расширяется в сторону уменьшения адресов ОЗУ. Регистры МП обнуляются. По командам RUN или STEP выполняется программа пользователя.
Режим работы микроЭВМ задается нажатием соответствующей клавиши на клавиатуре пульта. Назначение клавиш учебноотладочного устройства (УОУ) приведено в табл. 3.
Клавиши данных используются также для задания имен регистров
ирегистровых пар МП КР580ВМ80:
-клавиши A, B, C, D, E, 8/H, 9/L, F – для обозначения регистра – аккумулятора А, регистра общего назначения (РОН) B-L, регистра признаков F;
-клавиша 2/S для обозначения указателя стека (SP);
-клавиша 1/P для обозначения содержимого вершины стека (SP). Старшие разряды вершины стека хранятся по адресу SP+1, млад-
шие разряды – по адресу SP.
Включение тумблера в положение “Отладка” необходимо для организации прерывания в пошаговом режиме выполнения программы и анализа останова в контрольных точках.
10
|
|
11 |
|
|
Таблица 3 |
Название |
Обозначение |
Назначение клавиши |
клавиши |
клавиши |
|
Сброс |
RST |
Служит для формирования сигнала сбро- |
|
|
са УОУ |
|
|
Служит для перевода УОУ в режим за- |
Адрес |
ADDR |
дания адреса ячейки памяти |
|
|
Служит для перевода УОУ в режим за- |
Память |
MEM |
писи данных в ячейку памяти |
|
|
Служит для увеличения на единицу ад- |
Следующий |
NEXT |
реса индицируемой ячейки памяти или |
|
|
регистра МП |
|
|
Служит для восстановления начального |
Восстанов- |
CLR |
значения адреса или данных, если после |
их ввода не нажимались другие команд- |
||
ление |
|
ные клавиши |
|
|
Служит для отображения содержимого |
Регистр |
REG |
восьмиразрядного регистра МП |
Шаг |
STEP |
Служит для выполнения очередной ко- |
|
|
манды МП |
|
|
Служит для запуска программы на вы- |
Прогон |
RUN |
полнение с остановом на введенной кон- |
трольной точке либо команде останова |
||
|
|
МП |
Контроль- |
|
Служит для задания адреса контрольной |
ная точка |
BRK |
точки в программе |
2. ЗАДАНИЕ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ
1. Ознакомьтесь со структурой микроЭВМ.
2.Ознакомьтесь со структурой МП К580ВМ80.
3.Ознакомьтесь с общими принципами чтения и записи данных в микроЭВМ.
11
12
3. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ
3.1. Исследовать порядок включения микроЭВМ
Подключить шнур питания к сети. Включить тумблер СЕТЬ. На дисплей выводится адрес 8200. МикроЭВМ находится в режиме ОЖИДАНИЕ и реагирует на нажатие клавиш управления. Вызов возможных режимов работы определяется алгоритмом выполнения команд монитора. Из любого места программы можно вернуть микроЭВМ к этому состоянию нажатием на клавишу RST. Ячейки памяти и регистры будут обнулены, указатель вершины стека установлен по адресу 83E0. Нажать на клавишу RST и убедиться, что содержимое счетчика команд равно 8200.
3.2. Исследовать содержимое ОЗУ
Нажать на клавишу ADDR. Последовательно нажать на клавиши 8,3,Е,6. Убедиться при этом, что каждая цифра будет записана в младший разряд дисплея и произойдет одновременный сдвиг всех знаков адресного дисплея на один разряд влево. При введении четвертой цифры микроЭВМ выведет на дисплей число, соответствующее этому адресу: 00. В случае ошибки при введении кода нажать клавишу CLR и вновь набрать адрес. При нажатии на NEXT микроЭВМ увеличит значение адреса на единицу и выведет содержание ячейки на дисплей: 82. Убедиться, что дальнейшим нажатием на клавишу NEXT можно просмотреть содержимое ОЗУ дальше.
3.3. Записать числа в память микроЭВМ
Нажать на клавиши RST , MEM . На дисплее высветятся адрес 8200 и десятичная точка, сигнализирующая о возможности записи в ОЗУ. Нажать клавиши 1, 2, 3, 4 и убедиться, что окончательное число, записанное по адресу 8200, есть 34. Нажать клавишу NEXT и записать произвольное число по адресу 8201; перейти к следующему адресу и убедиться, что вернуться к предыдущему адресу можно нажав клавишу MEM. Запись вне поля адресов ОЗУ невозможна, при этом индицируется на дисплее сообщение об ошибке (Err).
12
13
3.4. Записать числа в программно-доступные регистры МП
Нажать клавиши RST, REG, A. На дисплее будет выведено имя регистра А и его содержимое. Нажав клавиши В, 6, ввести в аккумулятор число В6. Записать таким образом числа в регистры общего назначения B, C, D, E, H, L и в регистр признаков F. Перебрать обращение к регистрам при помощи клавиши NEXT.
Для обращения к регистровой паре нажать на клавиши ADDR, 1/Р, MEM. На дисплее отразится содержимое указателя стека. Для обращения к другим регистровым парам повторить вышеуказанные действия.
4. СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать: краткое описание структурной схемы учебной микроЭВМ; карту распределения памяти; назначение командных клавиш; обозначение клавиш программно-доступных регистров; регистровых пар и вершины стека.
5. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Расскажите назначение элементов структурной схемы учебной микроЭВМ.
2.С какой целью выделяется слово состояния МП?
3.Что такое монитор и каково его назначение?
4.Что такое карта распределения памяти и как распределена память в учебной микроЭВМ?
5.Как занести данные в память микроЭВМ и как их прочитать?
6.В какие регистры МП учебной микроЭВМ можно занести данные и как их прочитать?
7.Укажите назначение регистров в МП К580ВМ80.
13
14
Лабораторная работа № 3 ЗАПИСЬ И ВЫПОЛНЕНИЕ ПРОСТЫХ ПРОГРАММ
ЦЕЛЬ РАБОТЫ: исследование выполнения отдельных команд и простых программ; использование различных методов адресации в программах; запись программ.
1. КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
Микропроцессор (МП) К580ВМ80 имеет фиксированный набор команд. Время выполнения команды можно представить состоящим из ряда временных интервалов. Наиболее короткий временной интервал, равный периоду синхронизации МП, называется машинным тактом. Время, необходимое для извлечения одного байта информации из памяти или внешнего устройства, или выполнения команды, определяемой одним машинным словом, называется машинным циклом. Машинный цикл для МП может включать в себя 3-5 машинных тактов. В зависимости от вида команды время выполнения может состоять из 1-5 машинных циклов. Для МП имеется 10 типов машинных циклов: извлечение кода команды (цикл М1), чтение данных из памяти, запись данных в память, извлечение данных из стека, запись в стек, ввод данных из внешнего устройства, вывод данных на внешнее устройство, цикл обслуживания прерывания, останов, обслуживание прерывания в режиме останова. Первым машинным циклом при извлечении любой команды является цикл М1.
На каждом машинном цикле МП проверяет состояние сигнала ГОТОВ на своем входе. Нулевой сигнал на этом входе останавливает нормальную работу МП, он переходит в режим ОЖИДАНИЕ, при этом на магистралях микроЭВМ присутствует вся информация, передаваемая на рассматриваемом машинном цикле. Это можно использовать для поцикловой отладки микроЭВМ или анализа работы команды.
На каждом цикле М1 МП проверяет состояние сигнала З.Пр.(запрос на прерывание) на своем входе. Если прерывания разрешены (ранее в МП введена команда EI, на выходе МП сформирован единичный сигнал Р.Пр. - разрешение на прерывание), на шинах магистрали управления микроЭВМ появляется сигнал ОБ.Пр (обработка прерывания), по которому на шину данных аппаратно вводится код ко-
14
15
манды RST7, обеспечивающей вызов программы монитора, обслуживающей шаговый режим работы программы пользователя (тумблер в положении ОТЛАДКА), благодаря чему можно исследовать ход исполнения каждой команды. Если тумблер стоит в положении ПРОГОН, то запрос на прерывание самой микроЭВМ не формируется.
Программа записывается в микроЭВМ в последовательных ячейках памяти.
Рассмотрим простейшую программу (программу 1), извлекающую число из памяти по адресу 8400, инвертирующую его и записывающую результат по адресу 8401.
Программа 1 (в мнемокодах)
Мнемокод |
Комментарий |
LDA 8400 |
Получить число из адреса 8400 |
CMA |
Инвертировать число |
STA 8401 |
Записать результат по адресу 8401 |
RST4 |
Прервать выполнение программы |
При записи все числа представляются в шестнадцатиричной системе счисления. Для записи программы в память микроЭВМ необходимо перевести мнемокоды команд в машинные коды, т.е. произвести транслирование программы с языка ассемблер. Команды в программе могут быть одно-, двухили трехбайтные и должны в памяти занимать соответственно один, два или три адреса.
Программа 1 (размещение по адресам памяти)
Адрес |
Код команды |
Комментарий |
8200 |
3А |
Код команды LDA |
8201 |
00 |
Младший байт адреса |
8202 |
84 |
Старший байт адреса |
8203 |
2F |
Код команды CMA |
8204 |
32 |
Код команды STA |
8205 |
01 |
Младший байт адреса |
8206 |
84 |
Старший байт адреса |
8207 |
Е7 |
Код команды RST |
15
16
Предварительную запись программ удобно производить в более компактной форме. В программе указывается начальный адрес каждой команды и при этом понимается, что в зависимости от длины (одно-, двухили трехбайтная) команды в памяти будут занимать от одной до трех последовательных ячеек. При такой записи в левом столбце указываются лишь адреса команд в программе. Это позволяет сократить объем при описании программ и сделать более простым их анализ. Используем прямой способ адресации.
Программа 1 (общий вид записи)
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
|
команды |
|
|
|
8200 |
3А 0084 |
|
LDA, 8400 |
Получить число |
8203 |
2F |
|
CMA |
Инвертировать число |
8204 |
320184 |
|
STA, 8401 |
Записать число |
8207 |
E7 |
|
PST4 |
Прервать выполнение про- |
|
|
|
|
граммы |
Рассмотрим аналогичную программу с использованием косвенного способа адресации (программа 2).
Программа 2 (косвенный способ адресации)
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
|
команды |
|
|
|
8200 |
21 0084 |
|
LXIH, 8400 |
Занести в регистровую пару |
|
|
|
|
HL число 8400 |
8203 |
7Е |
|
MOV A,M |
Получить число из адреса, |
|
|
|
|
записанного в HL |
8204 |
2F |
|
CMA |
Инвертировать число |
8205 |
23 |
|
INX H |
Увеличить на единицу число |
|
|
|
|
в HL |
8206 |
77 |
|
MOV M,A |
Занести число по адресу, |
|
|
|
|
указанному в HL |
8207 |
Е7 |
|
RST4 |
Прервать выполнение про- |
|
|
|
|
граммы |
16
17
2. ЗАДАНИЕ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ
1. Ознакомьтесь со структурой команд МП К580ВМ80.
2.Рассмотрите правила выполнения команд INRA, DCRA, ADDA, ANAA, ORAA, CMPA, DAA.
3.Рассмотрите результат выполнения программы 1 при записи по адресу 8203 команд, приведенных в п.2 задания. Результаты выполнения программы при различных командах, записанных в программе 1 по адресу 8203, занести в табл. 1.
|
|
Таблица 4 |
Число, записанное по |
Команда, записанная по |
Число, записанное |
адресу 8400 |
адресу 8203 |
по адресу 8401 |
0F |
CMA (2F) |
|
|
[(A)← INV(A)] |
|
00 |
INR A (3C) |
|
|
[(R)← (R+1)] |
|
05 |
DCR A (3D) |
|
|
[(R)← (R-1)] |
|
04 |
ADD A (87) |
|
|
[(A)← (A+R)] |
|
33 |
ANA A (A7) |
|
|
[(A)← (A) AND R] |
|
66 |
ORA A (B7) |
|
|
[(A)← (A) OR R] |
|
3F |
CMP A (BF) |
|
|
[(A) – (R)] |
|
02 |
DAA (27) |
|
|
[десятичная коррекция A] |
|
4.Видоизмените и запишите программу 2 так, чтобы при ее выполнении исследуемое число первоначально записывалось по адресу
8000.
5.Разработайте программы: увеличения на 5 числа, записанного по адресу 8400, и записи результата по адресу 8401 (программа 3); сложения чисел , записанных по адресам 8400 и 8401, и записи результата по
17