Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум ч3 А4 09.10.2012.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.07 Mб
Скачать
    1. Команды записи в стек, восстановления и обмена стеком

PUSH B – запись в стек содержимого рег. пары BC;

PUSH D – запись в стек содержимого рег. пары DE;

PUSH H – запись в стек содержимого рег. пары HL;

PUSH PSW – запись в стек содержимого рег. пары F, A;

POP B – восстановление содержимого пары рег. BC;

POP D – восстановление содержимого пары рег. DE;

POP H – восстановление содержимого пары рег. HL;

POP PSW – восстановление содержимого пары рег. F, A;

XTHL – обмен содержимого верх. эл. стека и пары рег. HL.

  1. Записать в память, начиная с адреса 0800Н, коды программы сохранения содержимого регистров: BC, DE, HL, F, A, которая указана в таблице 73.

Таблица 73 – Контрольная программа сохранения содержимого пар регистров

Адрес

Команда

Операнд

Машинный код

Комментарий

0800

LXI

SP,0B20H

31 20 0В

; Загр. SP=0B20H, нижняя

; граница стека

0803

PUSH

B

C5

; ЗП сод. пары рег. BC в стек

0804

PUSH

D

D5

; ЗП сод. пары рег. DE в стек

0805

PUSH

H

E5

; ЗП сод. пары рег. HL в стек

0806

PUSH

PSW

F5

; ЗП сод. пары рег. F, A в

; стек

0807

HLT

76

;останов

      1. Выполнить программу:

СТ0800 0807ВП.

Проверить содержимое пар регистров и заполнить таблицу 74. Результаты записать в рабочую тетрадь.

Таблица 74 – Результаты выполнения контрольной программы сохранения

содержимого пар регистров

(BC)

(DE)

(HL)

(PSW)

(SP)

  1. Изменить содержимое регистров микропроцессора:

B, C, D, E, H, L, A, F.

  1. Записать в память программу восстановления содержимого пар регистров, которая указана в таблице 75.

Таблица 75 – Контрольная программа восстановления содержимого пар регистров

Адрес

Команда

Операнд

Машинный код

Комментарий

0810

POP

PSW

F1

; Восст. сод. пары рег. F, A

0811

POP

H

E1

; Восст. сод. пары рег. HL

0812

POP

D

D1

; Восст. сод. пары рег. DE

0813

POP

B

C1

; Восст. сод. пары рег. BC

0814

HLT

76

; Останов

  1. Выполнить программу:

СТ0810 0814ВП.

Проверить содержимое пар регистров и заполнить таблицу 76.

Таблица 76 – Результаты выполнения контрольной программы восстановления содержимого пар регистров

(BC)

(DE)

(HL)

(PSW)

(SP)

Содержимое регистров B, C, D, E, H, L, F, A должно совпадать с соответствующими значениями таблицы 74. Содержимое указателя стека (SP) = 0B20H.

  1. Записать в память программу пересылки данных из одного массива в другой (таблица 77), используя для адресации рег. пару HL и команду обмена стеком XTHL.

  1. Выполнить программу:

СТ0820 0837ВП.

Таблица 77 – Контрольная программа пересылки данных из одного массива памяти в другой

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0820

LXI

H, 0900H

21 00 09

; Загр. HL=0900H, адр. 2

; масс.

0823

LXI

SP, 0B00H

31 00 0B

; Загр. SP=0B00H, нижняя

; граница стека

0826

PUSH

H

E5

; ЗП в стек (HL)=0900H,

; адр. 2 масс.

0827

LXI

H, 0100H

21 00 01

; Загр. HL=0100H адр. 1

; масс.

082A

MVI

C, 80H

0E 80

; Загр. C=80H – длина

; массива

082C

М1

MOV

A, M

7E

; Перес. A ← (M), элем. 1

; масс.

082D

INX

H

23

; HL=(HL)+1, увел. на 1 адр.

; 1 массива

082E

XTHL

E3

; Обмен сод. стека и HL,

; (HL) – адр. 2 масс.,

; [(SP)] – адр. 1 масс.

082F

MOV

M, A

77

; ЗП M ← (A) эл. во 2 масс.

0830

INX

H

23

; HL=(HL)+1, адр. 2 масс.+1

0831

XTHL

E3

; Обмен сод. стека и HL,

; (HL) – адр. 1 масс., [(SP)]

; адр. 2 масс.

0832

DCR

C

0D

; С=(С)-1, уменьш. длину

; масс.

0833

JNZ

М1

C2 2C 08

; Продолжить, если (Iz)=0

0836

POP

D

D1

; Очистка стека

0837

HLT

76

;останов

Подсчитать контрольную сумму (КС) исходного массива (0100Н…017FH) и КС 2 массива (0900H…097FH), они должны совпадать (см. таблицу 78). Для подсчета КС использовать команду ПОДСЧЕТ КОНТРОЛЬНОЙ СУММЫ системной программы МОНИТОР.

Таблица 78 – Результаты выполнения контрольной программы пересылки данных из одного массива в другой

КС массива (0100Н…017FH)

КС массива (0900Н…097FH)

77

77

Задание 1:

Написать и выполнить программу обмена регистровыми парами, используя команды записи в стек PUSH ri и восстановления POP ri, следующим образом:

BC → DE;

DE → HL;

HL → BC.

Начальный адрес программы 0А00Н, нижняя граница стека 0В10Н. Исходные данные для загрузки регистровых пар указаны в таблице 79.

Таблица 79 – Исходные данные и результаты выполнения проверочной программы записи в стек и восстановления

Вариант

1

2

3

4

5

(BC) – исх.

0001

0506

0B0C

1112

1718

(DE) – исх.

0203

0708

0D0E

1314

191A

(HL) – исх.

0304

090A

0F10

1516

1B1C

(DE) – рез.

(HL) – рез.

(BC) – рез.

Проверочную программу записать в таблицу, аналогичную по форме таблице 77. Выполнить программу, результаты записать в таблицу 79.