Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab. №19 (чистовик).doc
Скачиваний:
5
Добавлен:
04.09.2019
Размер:
315.39 Кб
Скачать
    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.

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

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

Адрес

Команда

Операнд

Машинный код

Комментарий

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 в

; стек

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

СТ0800 0807ВП

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

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

(BC)

(DE)

(HL)

(PSW)

(SP)

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

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

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

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

Адрес

Команда

Операнд

Машинный код

Комментарий

0810

POP

PSW

F1

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

0811

POP

H

E1

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

0812

POP

D

D1

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

0813

POP

B

C1

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

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

СТ0810 0814ВП.

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

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

(BC)

(DE)

(HL)

(PSW)

(SP)

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

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

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

Адрес

Команда

Операнд

Машинный код

Комментарий

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

MOV

A, M

7E

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

; масс.

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

Адрес

Команда

Операнд

Машинный код

Комментарий

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

082CH

C2 2C 08

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

0836

POP

D

D1

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

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

СТ0820 0837ВП.

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

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

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

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

77

77

Задание 1:

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

BC → DE;

DE → HL;

HL → BC.

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

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

Вариант

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) – рез.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]