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

10.3 Команды вызова подпрограммы и возврата

CALL <B3><B2> – вызов подпрограммы по адресу <B3><B2>, указанному во втором и третьем байтах команды;

RET – возврат из подпрограммы.

10.3.1 Записать в память программу подсчёта контрольной суммы массива, использующую команду вызова подпрограммы сравнения содержимого пар рег. HL и DE.

Таблица 8 – Контрольная программа подсчёта контрольной суммы массива, использующая подпрограмму сравнения содержимого пар регистров

Адрес

Команда

Операнд

Машинный код

Комментарий

0840

LXI

H, 0100H

21 00 01

; Загр HL – нач. адрес

; массива

0843

LXI

D, 017FH

11 7F 01

; Загр. DE – конеч. адрес

; массива.

0846

LXI

SP, 0B00H

31 00 0B

; Загр SP=0В00H, нижняя

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

0849

MVI

B, 00H

06 00

; Загр. В=00Н – исх. знач.

; КС

084B

MOV

A, B

78

; Подсчёт КС массива

; памяти

Продолжение таблицы 8 – Контрольная программа подсчёта контрольной суммы массива, использующая подпрограмму сравнения содержимого пар регистров

Адрес

Команда

Операнд

Машинный код

Комментарий

084C

ADD

M

86

; Подсчёт КС массива

; памяти.

084D

MOV

B, A

47

; Подсчёт КС массива

; памяти.

084E

INX

H

23

; HL=(HL)+1, адр. след.

; ячейки

084F

CALL

0856H

CD 56 08

; Вызов подпрограммы

; сравнения

0852

JNC

084BH

D2 4B 08

Переход на адрес 080ВН, если (ТС)=0

0855

HLT

76

; Останов

Таблица 9 – Подпрограмма сравнения содержимого пар регистров HL и DE

Адрес

Команда

Операнд

Машинный код

Комментарий

0856

MOV

A, E

7B

; Подпрограмма сравнения

0857

SUB

L

95

; Если (HL)>(DE), то (ТС)=1

0858

MOV

A, D

7A

; Иначе (ТС)=0

0859

SBB

H

9C

;

085A

RET

C9

;

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

СТ0840 0855ВП.

Определить значение контрольной суммы заданного массива (содержимое регистра В). Сравнить полученное значение с результатом подсчёта контрольной суммы с помощью команды ПОДСЧЁТ КОНТРОЛЬНОЙ СУММЫ системной программы МОНИТОР, они должны совпадать. Записать в отчёт полученное значение контрольной суммы.

10.3.3 Выполнить программу поэтапно, устанавливая точки останова (ТО) в соответствии с таблицей 10:

СТ0840Н ТОВП.

Записать в таблицу 10 содержимое указателя стека SP в точках останова.

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

Точка останова

ТО1=084FH

ТО2=0856H

ТО3=085АH

ТО4=0852H

ТО5=0855H

(SP)

В точке останова ТО3 посмотреть содержимое ячеек памяти с адресами SP, SP+1. В них должны находиться мл. и ст. байты адреса возврата (таблица 11).

Таблица 11 – Содержимое стека в точке останова ТО3

(М) по адр. (SP)

52Н

(М) по адр. (SP+1)

08Н

Задание 2:

Написать с адреса 0А20Н проверочную программу подсчёта контрольной суммы массива.

1. Заполнить массив (0А50Н…0А6FН) константой ЕЕН:

  • начальный адрес массива загрузить в пару регистров HL;

  • константу ЕЕН загрузить в регистр D;

  • заполнение массива константой оформить в виде цикла;

  • счётчик циклов организовать на регистре Е.

2. Подсчитать контрольную сумму этого массива (без учёта переноса):

  • подсчёт контрольной суммы оформить как подпрограмму;

  • значение контрольной суммы записать в регистр С;

  • начальный адрес подпрограммы 0950Н;

  • нижняя граница стека 0В50Н.

3. Алгоритм решения задачи и алгоритм подпрограммы представлены на рисунках 2 и 1 соответственно.

4. Программу и подпрограмму записать в таблицы, аналогичные по форме таблицам 8 и 9 соответственно.

5. Записать в память УМК и выполнить проверочную программу подсчёта контрольной суммы. Указать в отчёте значение контрольной суммы. Полученное значение контрольной суммы сравнить с результатом, полученным при использовании команды ПОДСЧЁТ КОНТРОЛЬНОЙ СУММЫ системной программы МОНИТОР, они должны совпадать.

6. Выполнить программу поэтапно, устанавливая точки останова аналогично контрольной программе (таблицы 8 и 9). Результаты записать в таблицы, аналогичные по форме таблицам 10 и11.

Р исунок 1 – Алгоритм подпрограммы подсчёта контрольной суммы.

Р исунок 2 – Алгоритм решения задачи.

План 2003/04, поз. 124

Богородов Владимир Ильич

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