Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа2

.doc
Скачиваний:
1
Добавлен:
14.11.2019
Размер:
95.74 Кб
Скачать

Лабораторная работа № 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

1

0

0

0

1

1

Останов

М9

1

0

0

0

1

0

1

0

Прерывание во время останова

М10

0

0

1

0

1

0

1

1

  1. Задание 1. Исследовать программу 1.

    1. С помощью мониторной функции П ввести программу 1 в память, начиная с адреса 0800 (таблица 2).

    2. С помощью функции П записать в ячейки с адресами 0В00 и 0В01 одинаковые числа, равные номеру студента (курсанта) по журналу преподавателя.

    3. С помощью мониторной функции РГ обнулить содержимое регистра F.

    4. С помощью функции СТ запустить программу с адресом 0800.

    5. На дисплее индицируется адрес останова 0808 (для лабораторной МПС) или 0807 (для эмулятора).

    6. С помощью мониторной функции П прочитать содержимое ячеек памяти 0В00 и 0В01.

    7. С помощью мониторной функции РГ прочитать содержимое регистра признаков F.

    8. Заполнить соответствующую строку таблицы 3.

    9. Заменяя в программе 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

М2

Чтение памяти

0801

00

М2

Чтение памяти

0802

М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.

  2. Таблица выполнения п. 1.8

  3. Таблица выполнения п. 2.4

  4. Текст программы 2.

  5. Таблица выполнения п. 3.3

  6. Временная диаграмма любой трехбайтовой команды

3