96
воспользоваться механизмом микроподпрограмм.
Одна и та же микроподпрограмма может быть вызвана из
разных точек вызывающих микропрограмм. Поэтому при вызове
микроподпрограммы необходимо запомнить адрес, с тем, чтобы
восстановить его при возвращении из микроподпрограммы. Что-
бы запомнить и восстановить адреса возврата от вложенных вы-
зовов, используется безадресная память - стек (stack).
Принцип (дисциплина) работы стека
описывается условием
«последним вошел - первым вышел» (Last In - First Out, LIFO).
Чтобы описать этот принцип будем считать, что слова, храня-
щиеся в стеке, перенумерованы с помощью первых натуральных
чисел 1,2,...,N. Слово с наибольшим номером называют вершиной
стека.
Стек может выполнять следующие действия:
-«чтение» слова с наибольшим номером,
-«выталкивание» (стирание) из памяти слова с наибольшим
номером
,
-«запись» нового слова с присваиванием ему наибольшего но-
мера.
При вызове микроподпрограммы выполняется операция
«записи» в стек адреса возврата. При возвращении из микропод-
программы выполняется операция «чтения» адреса возврата, за-
тем «выталкивания» его же из стека.
Операция «чтения» без «выталкивания» выполняется при
использовании стека для организации циклов.
Разряды с
именем (k,e1,e2) определяют тип выполняемой
микроинструкции. В связи с тем, что теперь в схеме существует 4
источника адреса для управляющей памяти, возможны 4 типа
безусловных переходов, кроме того, возможны различные услов-
ные переходы в разных сочетаниях комбинирующие эти источ-
ники адреса и входные переменные.
С помощью комбинационной схемы CS разряды микроинст-
рукции (k,e1,e2) преобразуются в сигналы
управления стеком и
мультиплексором.