Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konsp_Arkh_EVM (1).doc
Скачиваний:
5
Добавлен:
10.09.2019
Размер:
2.62 Mб
Скачать

10.2. Стек и его использование в моа

Стек («магазинная» память) функционирует по алгоритму: последним вошел, первым обслуживается.

Рисунок 118. Функциональная схема стека

Накопитель + управление стеком(управляется схемой)

TOS – вершина стека(накопительная ячейка)

По левой стрелке загружается – режим записи. Разгружается – режим чтения. Шина имеет разрядность такую же, как и накопитель.

Запись и чтение управляемые (управляются с помощью сигналов Х1 и Х2).

УС управляется входными сигналами:

- сигнал обращения.

Если по приходит «1», то стек находится в режиме хранения. Если -0, то обращение к памяти.

- соответствует режиму записи.

- соответствует режиму чтения.

Если и объединить в одну линию и если идет «1», то режим записи, а если по этой линии «0», то режим чтения.

Индикатор заполненности накопителя.

Если СТЕК заполнен до конца, режим записи запрещается. Если пуст, то запрещается режим чтения.

Разрешение на сигналы Х1,Х2 выдается по команде обращения .

  1. Стековая память используется в режиме прерывания работы процессора(СС → вектор прерывания). Вся информация о слово состояния записывается в стек.

В простейшем случае стек выполняется в виде реверсивного счетчика, емкость которого равен емкости накопителя.

В более сложном случае для организации стека отводится участок ОП.

2. Использование стека в МОА.

Рисунок 119. Функциональная схема УУ с использованием стека

Перепрограммируемое запоминающее устройство или преобразователь кода (4х6).

- вектор прерывания, по нему отыскивается начало прерывания программы.

В соответствие с S1 и S2 один из входов МПРа подается на выход. Также на МПРа подается с СТмк и всегда имеем ТА+1.

- режим обращения к стеку.

По линии подается Push(1) запись или Рор(0) – чтение.

Подобная схема УА позволяет реализовать для МТ1804 16 МОА. Из них 3 основных ПС, БП, УП. В некотором случае управление идет не по прямому значению ОС, а по инверсному (т.е. + ещё 4 команды ). А также + различные виды управления стека.

При прямом виде ОС + 4 команды, следовательно в сумме набирается 16 команд.

Экономия основной памяти (ОП) при использовании стека видна в трех случаях:

  1. обращение к подпрограмме,

  2. вложение подпрограммы,

  3. организация циклов.

Рисунок 120 . Обращение к подпрограмме

1→2→3 переход по счетчику. Из 3 переход в подпрограмму. Этот переход осуществляется и следует после МК адрес, запоминающейся в Tos. В Еos, пока выполняется ПП будет находится 4-ая команда. RTN – снять информацию с вершины стека, т.е. возвращение к ОП.

2)

Рисунок 121. Вложение подпрограммы

В ПП1 идет обращение к ПП2, каждый раз указывается адрес перехода.

С помощью стека в Tos запоминается 3-я команда. Выполняется ПП1 И снова записывается в Tos - 8. Идем в ПП, идет RTN, читаем 8 из Tos. RTN из ПП1, из Tos – 9. Стек выходит на новую позицию.

В МТ1804 в стеке 4 позиции, следовательно можно обращаться к 4-м ПП.

Экономия, т.к. исключается адрес перехода.

3)

Рисунок 122. Организация циклов

1,2,3,4,5 – переходы по счетчику. В 5 МК осуществляется условный переход.

Если Z=1, то идем вверх, если Z=0 то спускаемся вниз.

Начало цикла запоминаем в стеке. Когда в 5 выходим из цикла, то при Z=1, обращение к вершине стека и возвращение в 1, а если Z=0, то по ТА+1, т.е. в 6. Достигается экономия длины МК.

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