Четверг, 16.05.2024, 03:59

Микропроцессорные системы

Меню сайта
Главная » Статьи » Методические указания к лабораторным работам

Лабораторная работа № 2 "Запись и выполнение простых программ"

Цель работы: исследование выполнения отдельных команд и простых программ; использование различных методов адресации в программах; запись программ.

МП KP580BM80 имеет фиксированный набор команд. Время выполнения команды определяется процессом получения, декодирования и выполнения команды. Это время можно представить состоящим из ряда временных интервалов. Наиболее короткий временной интервал, равный периоду синхросигналов МП, называется машинным тактом. Время, необходимое для извлечения 1 байта информации из памяти или внешнего устройства или выполнения команды, определяемой одним машинным словом, называется машинным циклом. Машинный цикл для МП может включать в себя 3-5 машинных тактов. В зависимости от вида команды время выполнения может состоять из 1-5 машинных циклов. Для МП имеется 10 различных типов машинных циклов: извлечение кода команды (цикл M1), чтение данных из памяти, запись данных в память, извлечение данных из стека, запись данных в стек, ввод данных из внешнего устройства, Запись данных во внешнее устройство, цикл обслуживания прерывания, останов, обслуживание прерывания в режиме останова. Первым машинным циклом при извлечении любой команды является цикл M1.

На каждом машинном цикле МП проверяет состояние сигнала READY на своем входе. Нулевой сигнал на этом входе приостанавливает нормальную работу МП и переводит в режим ОЖИДАНИЕ, при этом на магистралях микроЭВМ присутствует вся информация, передаваемая на рассматриваемом машинном цикле. В учебной микроЭВМ это используется для исследования выполнения команд по машинным циклам. В этом режиме информация на магистралях микроЭВМ отображается светодиодами состояния.

Программа записывается в микроЭВМ в последовательных ячейках памяти.

Рассмотрим простейшую программу (программа 1), извлекающую число из адреса памяти 0C00h, инвертирующую его и записывающую результат в адрес памяти 0C01h.

Программа 1 (в мнемокодах)

Мнемокод                   Комментарий

LDA 0C00h               Загрузить в аккумулятор число из адреса 0C00h (или 0B00h)

CMA                         Инвертировать число в аккумуляторе

STA 0C01h               Сохранить результат из аккумулятора по адресу 0C01h (или 0B01h)

RST 1                       Прервать выполнение программы

При записи программ все числа представляются в шестнадцатеричной системе счисления.

Для записи программы в память микроЭВМ необходимо перевести мнемокоды команд в машинные коды. Команды в программе могут быть одно-, двух- или трехбайтовые и должны в памяти занимать соответственно один, два или три адреса.

Программа 1 (размещение по адресам памяти)

Адрес

Число

Комментарий

0800

3A

Код команды LDA

0801

00

Младший байт адреса

0802

Старший байт адреса

0803

2F

Код команды СМА

0804

32

Код команды STA

0805

01

Младший байт адреса

0806

Старший байт адреса

0807

CF

Код команды RST 1

Предварительную запись программ удобно проводить в более компактной форме. В программе указывается начальный адрес каждой команды и при этом понимается, что в зависимости от длины (одно-, двух- или трехбайтная) команды в памяти будут занимать от одной до трех последовательных ячеек. При такой записи в левом столбце указываются лишь адреса команд в программе. Это позволяет сократить объем при описании программ и сделать более простым их анализ.

Программа 1 (общий вид записи)

Адрес

Код

Метка

Мнемокод

Комментарий

0800

3A 00 0C

 

LDA 0C00h

; Загрузить в аккумулятор число из адреса 0C00h

0803

2F

 

CMA

; Инвертировать число

0804

32 01 0C

 

STA 0C01h

; Сохранить результат из аккумулятора

 

 

 

 

; по адресу 0C01h

0807

CF

 

RST 1

; Прервать выполнение программы

Здесь используется прямой способ адресации. Рассмотрим аналогичную программу, но с использованием косвенного способа адресации (программа 2).

Программа 2

Адрес

Код

Метка

Мнемокод

Комментарий

0800

21 00 0C

 

LXI H, 0C00h

; Записать в регистры Н, L число 0C00h

0803

7E

 

MOV A, M

; Получить число из адреса, указанного в

; регистрах H, L

0804

2F

 

CMA

; Инвертировать число в аккумуляторе

0805

23

 

INX H

; Увеличить на 1 число в регистрах H, L

0806

77

 

MOV M, А

; Записать число из аккумулятора по

; адресу, указанному в H, L

0807

CF

 

RST 1

; Прервать выполнение программы

Задания

1. Ознакомьтесь со структурой команд МП i8080A (см. приложение).

2. Изучите порядок выполнения команд МП i8080A.

3. Изучите методы программирования на языке Ассемблера и в машинных кодах для МП i8080A.

4. Рассмотрите правила выполнения команд INR А (ЗC), DCR А (3D), ADD А (87), ANA А (A7) , XRA А (AF), CMP А (BF).

5. Исследуйте программу 1.

5.1. Введите в микроЭВМ программу 1.

5.2. Запишите по адресу 0C00h исследуемое число (см. вариант в табл. 3).

5.3. Осуществите пуск программы 1 с адреса 0800h. Проверьте результат выполнения программы путем исследования числа, записанного по адресу 0C01h.

5.4. Исследуйте процесс выполнения программы по командам. После выполнения каждой команды проанализируйте содержимое всех программно-доступных регистров МП.

5.5. Исследуйте процесс выполнения команд в программе 1 по машинным циклам. Обратите внимание на последовательность передачи и преобразования информации в микроЭВМ при выполнении каждой команды.

6. Исследуйте программу 2.

6.1. Введите в микроЭВМ программу 2.

6.2. Запишите по адресу 0C00h исследуемое число (см. вариант в табл. 3).

6.3. Осуществите пуск программы 2 с адреса 0800h. Проверьте результат выполнения программы путем исследования числа, записанного по адресу 0C01h.

6.4. Исследуйте процесс выполнения программы по командам. После выполнения каждой команды проанализируйте содержимое всех программно-доступных регистров МП.

6.5. Исследуйте процесс выполнения команд в программе 2 по машинным циклам. Обратите внимание на последовательность передачи и преобразования информации в микроЭВМ при выполнении каждой команды.

6.6. Заменяя в программе 2 команду CMA (2F) на команды INR А (3C) DCR А (3D), ADD А (87), ANA А (A7), XRA А (AF), CMP A (BF), исследуйте результат выполнения указанных команд по числу, записанному по адресу 0C01h. Результат выполнения программы при различных командах, записанных в программе 2 по адресу 0804h, занесите в табл. 2.

Таблица 2.

Число, записанное по адресу 0C00h

Команда, записанная по адресу 0804h

Число, записанное по адресу 0С01h

 

 

 

7. Разработайте программы: а) увеличения на 5 числа, записанного по адресу 0C00h и записи результата по адресу 0C01h (программа 3); б) сложения чисел, записанных по адресам 0C00h и 0CA0h, и записи результата по адресу 0C01h (программа 4); в) сравнения чисел в адресах 0C00h и 0C01h и записи большего из них в регистр В (программа 5).

7.1. Введите в микроЭВМ программу 3.

7.2. Осуществите пуск программы 3 и проверьте результат ее выполнения по числу, записанному по адресу 0C01h, при числах 05h, FEh, записанных по адресу 0C00h.

8. Исследуйте программу 4.

8.1. Введите в микроЭВМ программу 4.

8.2. Проверить результат выполнения программы по числу, записанному по адресу 0C01h, последовательно записывая по адресам 0C00h и 0CA0h соответственно числа 0Bh и B0h, FEh и B5h и осуществляя пуск программы.

8.3. Видоизмените и исследуйте программу 4 для случая, когда сумма двух чисел будет превышать восьмиразрядное число.

9. Исследуйте программу 5

8.1. Введите в микроЭВМ программу 5.

8.2. Запишите по адресам 0C00h и 0C01h исследуемые числа.

8.3. Осуществите пуск программы.

8.4. Проверьте результат ее выполнения по числу, записанному в регистре В.

 

При выполнении лабораторной работы на учебной микроЭВМ следует иметь ввиду, что:

1. Ввод исследуемой программы осуществляется путем ее последовательной записи в ячейки памяти. Для записи числа по адресу используются клавиши "ОтА", "ЗпУв" и цифровые клавиши на клавиатуре.

2. Пуск программы осуществляется нажатием на клавишу "П".

3. Выполнение программы по командам осуществляется нажатием на клавишу "Шк". После выполнения каждой команды микроЭВМ позволяет выводить на дисплей содержимое программно-доступных регистров МП с помощью клавиш "ОтРг" и "ЗпУв".

4. Выполнение программы по машинным циклам осуществляется последовательным нажатием на клавишу "Шц", при этом информация на дисплей микроЭВМ не выводится, а отображается лишь на светодиодах магистралей. Окончание режима производится нажатием на клавишу "Ст", при этом на дисплей выводится адрес текущей команды, выполняемой микроЭВМ на момент выхода из режима выполнения команд по машинным циклам.

Таблица 3.

Вариант

Исследуемое число

1

03h

2

15h

3

27h

4

39h

5

4Ah

6

5Bh

7

6Ch

8

7Dh

9

8Eh

10

9Fh

11

3Ah

12

5Bh

13

7Ch

14

9Dh

15

AEh

16

BFh

17

3Fh

18

5Eh

19

7Dh

20

9Ch

21

ABh

22

BAh

23

C9h

24

D7h

25

E3h

26

F1h

27

39h

28

57h

29

A6h

30

6Fh

 

Содержание отчета

Отчет должен содержать: 1. Цель работы. 2. Информацию о содержании программно-доступных регистров МП при выполнении программы 1 по командам. 3. Результат выполнения программы 2, при различных командах, записанных по адресу 0804h (табл. 2). 4. Текст программы 3 и результат ее выполнения. 5. Текст программы 4 и результат ее выполнения. 6. Текст программы 5 и результат ее выполнения. 7. Выводы.

Категория: Методические указания к лабораторным работам | Добавил: avk1963 (10.03.2015)
Просмотров: 3594 | Рейтинг: 3.7/17
Всего комментариев: 0