Лабораторная работа2
.docЛабораторная работа № 2
Ознакомление с системой команд микропроцессора КР580ВМ80А и выполнение простейших программ.
Цель работы: исследование выполнения отдельных команд и простых программ; использование различных методов адресации в программах; запись программ.
Краткие сведения из теории.
Микропроцессор КР580ВМ80А имеет фиксированный набор команд. Работа МП по реализации каждой команды программы пользователя основана на принципе микропрограммного управления. Это означает, что каждая команда реализуется как некоторая последовательность микрокоманд или микроопераций, приводящая к требуемому результату. Выполнение каждой считанной МП команды осуществляется в строго определенной последовательности, задаваемой кодом команды. При этом выполнение определенных микроопераций синхронизируется во времени сигналами Ф1 и Ф2 тактового генератора. Одним из важнейших понятий всего процесса выполнения команд программы является понятие машинного цикла.
В МП процесс выполнения каждой команды можно разбить на ряд основных операций. Время, отведенное на выполнение операции обращения к памяти или устройству ввода/вывода, составляет машинный цикл. Таким образом, процесс выполнения команды состоит из стольких машинных циклов, сколько обращений к памяти или устройствам ввода/вывода требуется для ее использования. Машинный цикл в свою очередь состоит из нескольких машинных тактов.
Каждая команда в зависимости от ее вида может занимать от 1 до 5 МЦ. МП КР580 имеет 10 типов машинных циклов, а каждый машинный цикл может состоять из 3-5 МТ. Под МТ подразумевается интервал времени, соответствующий одному периоду тактовых импульсов, подаваемых от синхрогенератора.
Машинные циклы: М1 – чтение кода команды; М2 – чтение памяти; М3 – запись в память; М4 – чтение стека; М5 – запись в стек; М6 – ввод (чтение порта); М7 – вывод (запись в порт); М8 – прерывание, прием команды RST или CALL из контроллера прерываний; М9 – останов; М10 – прерывание во время останова, прием кода команды RST или CALLпри выводе МП из режима ОСТАНОВА.
Первым машинным циклом при выполнении любой команды всегда является машинный цикл М1.
В лабораторной МПС имеется возможность выполнения команд по циклам. Определение типа цикла производится в соответствии с таблицей 1 по слову состояния, индицируемому на светодиодах пульта оператора.
Таблица 1.
-
Тип цикла
Слово состояния
D7
D6
D5
D4
D3
D2
D1
D0
Выбор команды
М1
1
0
1
0
0
0
1
0
Чтение из памяти
М2
1
0
0
0
0
0
1
0
Запись в память
М3
0
0
0
0
0
0
0
0
Чтение из стека
М4
1
0
0
0
0
1
1
0
Запись в стек
М5
0
0
0
0
0
1
0
0
Ввод
М6
0
1
0
0
0
0
1
0
Вывод
М7
0
0
0
1
0
0
0
0
Прерывание
М8
0
0
0
0
0
1
1
Останов
М9
0
0
0
1
0
1
0
Прерывание во время останова
М10
0
0
1
0
1
0
1
1
Задание 1. Исследовать программу 1.
С помощью мониторной функции П ввести программу 1 в память, начиная с адреса 0800 (таблица 2).
С помощью функции П записать в ячейки с адресами 0В00 и 0В01 одинаковые числа, равные номеру студента (курсанта) по журналу преподавателя.
С помощью мониторной функции РГ обнулить содержимое регистра F.
С помощью функции СТ запустить программу с адресом 0800.
На дисплее индицируется адрес останова 0808 (для лабораторной МПС) или 0807 (для эмулятора).
С помощью мониторной функции П прочитать содержимое ячеек памяти 0В00 и 0В01.
С помощью мониторной функции РГ прочитать содержимое регистра признаков F.
Заполнить соответствующую строку таблицы 3.
Заменяя в программе 1 команду CMA на INR A, DCR A, ADD A, ANA A, ORA A, CMP A, DAA, выполнить пункты 1.3 – 1.8
Таблица 2.
-
Адрес
Мнемоника
Операнд
Машинный код
Комментарии
0800
LDA
0B00
3A 00 0B
поместить в А число
0803
CMA
2F
инвертировать число
0804
STA
0B01
32 01 0B
поместить в 0В01 число
0807
RST 7
FF
Таблица 3.
Команда |
Содержимое адреса 0В01 |
Регистр признаков F |
||
|
в Н-коде |
в В-коде |
в Н-коде |
в В-коде |
CMA |
|
|
|
|
INR A |
|
|
|
|
DCR A |
|
|
|
|
ADD A |
|
|
|
|
ANA A |
|
|
|
|
ORA A |
|
|
|
|
CMP A |
|
|
|
|
DAA |
|
|
|
|
2. Задание 2. Исследование циклового состава команд программы 1.
2.1 Переключатель «РБ/ШГ» установить в положение «ШГ» (для лабораторного стенда кнопка «РБ/ШГ» в нажатом состоянии; для эмулятора поставить маркер на позиции «РБ/ШГ»)
2.2 Переключатель «КМ/ЦК» установить в положение «ЦК» (для лабораторного стенда кнопка «КМ/ЦК» в нажатом состоянии; для эмулятора поставить маркер на позиции «КМ/ЦК»)
2.3 С помощью мониторной функции СТ запустить программу 1 с адреса 0800. Последовательно нажимая кнопку «ШГ», дойти до момента остановки, при котором на дисплее появится адрес останова 0808.
2.4 При каждом шаге, начиная с исходного состояния, прочитать данные со светодиодов пульта оператора, и переведя их показания в Н-код, заполнить таблицу, начало которой показано в таблице 4.
При заполнении таблицы наименование цикла определяется по показаниям светодиодов на пульте оператора и таблице 1.
Таблица 4.
Команда |
Циклы |
Шина адреса |
Шина данных |
|
№ |
Наименование цикла |
|||
LDA 0B00 |
М1 |
Чтение кода команды |
0800 |
3А |
М2 |
Чтение памяти |
0801 |
00 |
|
М2 |
Чтение памяти |
0802 |
0В |
|
М2 |
Чтение памяти |
0В00 |
хх |
|
… |
… |
… |
… |
… |
3. Задание 3. Исследование циклового состава команд программы 2.
3.1 С помощью функциональной клавиши П ввести программу 2 (таблица 5), начиная с адреса 0800.
3.2 С помощью функции П записать в ячейки с адресами 0В00 и 0В01 одинаковые числа, равные номеру студента (курсанта) по журналу преподавателя.
3.3 Исследовать цикловой состав программы 2 по методике, описанной в п.2.
Таблица 5.
-
Адрес
Мнемоника
Операнд
Машинный код
Комментарии
0800
LXI
H 0B00
21 00 0B
записать в пару HL число
0803
MOV
A M
7E
переслать в А число из ячейки 0В00
0804
CMA
2F
инвертировать число
0805
INX
H
23
увеличить на 1 содержимое HL
0806
MOV
M A
77
переслать из А в ячейку с адресом 0В01
0807
RST 7
FF
Содержание отчета.
Текст программы 1.
Таблица выполнения п. 1.8
Таблица выполнения п. 2.4
Текст программы 2.
Таблица выполнения п. 3.3
Временная диаграмма любой трехбайтовой команды