Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RGZ Mein.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
915 Кб
Скачать
☆

4.4. Подпрограмма monitor:

Входные параметры:

Регистровая пара DE - указатель на область памяти, где хранится строка для сканирования.

Выходные параметры:

Регистр А – код нажатой клавиши.

Перечень подпрограмм вызываемых из данной подпрограммы:

DCD, SDS, SPU, KIND.

Краткое описание действий подпрограммы:

Подпрограмма ждёт нажатия клавиши, сканируя тем временем, дисплей строкой, на которую указывает регистровая пара DE. После нажатия клавиши определяется её код и записывается в аккумулятор.

Код программы:

080C DF RST 3; Загрузка в DDSP

080D CD E9 01 CALL DCD; Кодирование

N1:

0810 CD C8 01 CALL SDS; Вывод сроки на экран

0813 CD 85 01 CALL SPU;

0816 CA 10 08 JZ l1;

0819 CD 4B 01 CALL KIND; Определение кода клавиши

081C C9 RET

4.5. Подпрограмма: vvod

Входные параметры: отсутствуют

Выходные параметры: 0B00 – введенное число

Используемые подпрограммы: LAMP, KIND.

Адрес

Код команды

Метка

Мнемокод

Комментарий

08A0

CD 50 09

VVOD:

CALL LAMP

Загрузка п/п LAMP

08A1

AF

XRA A

Очистка регистра А

08A4

32 02 0B

STA 0B02

Обнуление 0B02

08A7

CD 4B 01

M1:

CALL KIND

Загрузка п/п KIND

08AA

47

MOV B,A

Запись числа из рег. А в рег. B

08AB

FE 83

CPI 83

Если нажата клавиша “ЗпУв” то идти к M2

08AD

CA C7 08

JZ M2

08B0

3A 02 08

LDA 0B02

Загрузка предыдущего значения(единиц)

08B3

32 F1 0B

STA 0BF1

Вывод на HL1 десятков

08B6

0F

RRC

Сдвиг на 4 бита влево

для получения десятков

08B7

0F

RRC

08B8

0F

RRC

08B9

0F

RRC

08BA

32 01 0B

STA 0B01

Запись десятков в ячейку памяти

08BD

78

MOV A,B

08BE

32 02 0B

STA 0B02

Запись единиц в ячейку памяти

08C1

32 F0 0B

STA 0BF0

Вывод на HL0 единиц

08C4

C3 A7 0B

JMP M1

Переход к M1

(Ввод пока не нажата “ЗпУв”)

08C7

3A 01 0B

M2:

LDA 0B01

Сохранение введенного числа в ячейке памяти 0B00

08CA

47

MOV B,A

08CB

3A 02 0B

LDA 0B02

08CE

80

ADD B

08CF

32 00 0B

STA 0B00

08D2

C9

RET

Возврат из подпрограммы

4.6. Подпрограмма SAVE_DATA:

Входные параметры

0B00, 0B01 – текущее число, отображаемое на дисплее.

Выходные параметры:

0B12 – слагаемое.

Перечень подпрограмм вызываемых из данной подпрограммы: нет.

Краткое описание действий подпрограммы:

Подпрограмма сохраняет в памяти число, составляя его из старшего и младшего байта текущего числа.

Код программы:

0890 7E MOV A,M; Формируем слагаемое из байтов

0891 47 MOV B, A

0892 23 INX H

0893 7E MOV A, M

0894 17 RAL

0895 17 RAL

0896 17 RAL

0897 17 RAL

0898 80 ADD B

0899 32 12 0B STA 0B12; Записываем в область слагаемого

089C 3E 02 MVI A, 02; Переходим к ожиданию второго

089E 32 03 0B STA 0B03; слагаемого

08A1 3E 00 MVI A, 00

08A3 77 MOV M, A

08A4 2B DCX H

08A5 77 MOV M, A

08A6 11 00 0B LXI D, 0B00

08A9 C9 RET

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