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

13. Организация подпрограмм и использование стековой области памяти.

Подпрограмма является самостоятельной программной единицей и может быть вызвана из различных программ. Выделение фрагмента программы в подпрограмму облегчает частое обращение к нему в процессе реализации алгоритма. Любая подпрограмма в свою очередь может обращаться к другой подпрограмме. После выполнения идет возврат на следующую после вызова подпрограммы команду.

При работе с подпрограммами используется ЗУ со стековой адресацией. Если в главной программе есть обращение к подпрограмме, то после этого данные могут быть стерты подпрограммой. Во избежание программист может сохранить полезные данные в стековой области, что позволяет беспрепятственно пользоваться регистрами. Это есть главное назначение стековой области памяти. Для стековой области отводится специальная область оперативной памяти, называемая стеком. От глубины стека зависит допустимая степень вложенности программ. Адрес вершины стека хранится в специальном регистре SP – указатель стека. Стековая адресация позволяет первым прочесть слово, которое было записано последним. Таким образом, порядок чтения из стека является обратным порядку записи в стек. Запись информации в стек называется загрузкой данных в стек, а чтение из стека – извлечение данных из стека. Стек используется при работе с подпрограммой, когда необходим возврат в программу после выполнения подпрограммы. Обращение к стеку при записи – PUSH, при чтении – РОР.

PUSH PSW

PUSH BC

PUSH DE

PUSH HL

PSW – регистровая пара A, F(аккумулятор, флаговый регистр )

РОР HL

РОР DE

РОР BC

РОР PSW

Вызов подпрограммы осуществляется командой CALL addr, где addr означает начальный адрес подпрограммы. По этой команде содержимое программного счетчика (РС) записывается в стек, а в программный счетчик записывается начальный адрес подпрограммы из адресной части команды, что обеспечивает переход к подпрограмме. Подпрограмма обязательно заканчивается словом RETURN (возврат). Команда RETURN возвращает содержимое программного счетчика, обеспечивающее возврат в место из которого программа вызывалась..

Кроме того, в системе команд имеются команды обращения к подпрограммам и возврата с контролем условий.

14. Программная реализация интервалов времени

2 способа реализации:

- использование регистровой пары;

- использование вложенных циклов.

Рассмотрим использование регистровой пары:

=65535*24/2*106=0,8с

=24/2*106

Мнемокод

Коммент.

PUSH PSW

LXI HL FFFF

m3: DCX H

MOV A,H

ORAL

JNZ m3

POP PSW

RET

A,F в стек

x=FFFF

HL-1

Если не 0

Недостатки: низкая точность формирования сигналов, погрешность равна количеству тактов повторений.

Использование вложенных циклов:

MVI C,FF

m4: MVI B,FF

m3: DCR B

JNZ m3

DCR C

JNZ m4

Пример: сформировать линейно возрастающее задающее воздействие.

Начальн.знач. – нулевое, конечное – максимальное восьмиразрядное.

Мнемокод

T:PUSH PSW

MVI C

m2: MVI B,FF

m1: DCR B

JNZ m1

DCR C

JNZ m2

POP PSW

RET

с

Запишем главную программу:

Мнемокод

Коммент.

XRA A

NVI H,FF

OUT 84

CALL T

INR A

DCR H

JNZ m2

00 A

Uзmax H

Uз Вывод

Uз+1

H-1(счйтчик шагов)

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