Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
2.36 Mб
Скачать

Директива «Передача управления программе пользователя»

Это директива передачи управления программе пользователя. При ее выполнении начинает выполняться программа пользователя, расположенная в ОЗУ.

Для передачи управления программе пользователя необходимо нажать директивную клавишу «СТ» и затем информационными клавишами задать начальный адрес программы в ОЗУ 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

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

М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

/