Cтраница 3
С этой целью адрес возврата переписывается в элемент стека, занятый адресом области А, и вершина стека перемещается на место этого элемента. [31]
Рабочие ячейки и адрес возврата для процедуры хранятся в виде единого блока памяти. При первом обращении к процедуре вход в нее осуществляется обычным ( нерекурсивным) способом, но имеются средства обнаружения рекурсивных обращений к процедурам в процессе счета, и если процедура вызывается рекурсивно, то ее блок рабочих ячеек запоминается в магазинной памяти. [32]
При ветвлении по адресу возврата адрес из РАВД дополняется двумя младшими разрядами, которые поступают из зоны 3 ( см. рис. 123) базового адреса следующей ДМК. [33]
В регистр R5 заносится адрес возврата, а в регистр СК - адрес команды MARKN, которая и будет выполняться в следующем такте программы. Таким образом, осуществляется полный выход из подпрограммы с восстановлением содержимого R5 и первоначального значения указателя стека. [34]
Покажите, каким образом адрес возврата, хранимый в верхушке стека. Объясните, почему этот способ непригоден при наличии трех и более сопрограмм. [35]
Затем из стека извлекается адрес возврата, с помощью которого в регистр RO пересылается слово, содержащее саму TRAP-инструкцию. Эта пересылка необходима для того, чтобы после очистки старшего байта, содержащего код инструкции TRAP, получить в младшем байте номер строки в таблице, содержащей адрес необходимой подпрограммы. [36]
Схема обращения к подпрограмме. [37] |
В регистре 14 запоминается адрес возврата из подпрограммы. [38]
Команда извлекает из стека адрес возврата и возвращает управление из процедуры, вызванной ранее командой CALL. Необязательный числовой параметр команды RET указывает количество байтов, которые освобождаются в стеке после извлечения адреса возврата. [39]
При переходе к подпрограмме адрес возврата заносится в ячейку с указанным адресом, а выполнение подпрограммы начинается с команды, записанной в следующей ячейке. [40]
Распределение полей микрокоманды каналов. [41] |
В поле константы задается адрес возврата микропрограммы. Содержимое этого поля поступает в БУ ПМП для записи его в регистры адреса возврата РАВ и РАВМ. [42]
Это приводит к засылке адреса возврата в стек поверх того адреса, на который только что было передано управление. Нет, однако, никакой причины, ради которой последний должен оставаться в стеке. [43]
Применение стека для сохранения адреса возврата позволяет простыми средствами обеспечить правильную последовательность возврата при повторных и многократных обращениях из подпрограммы к другим подпрограммам. Единственное требование состоит в том, что перед выполнением команды возврата в подпрограмме должно быть восстановлено то значение УС, которое было при входе в подпрограмму. Такая необходимость возникает только в тех подпрограммах, которые используют область стека. [44]
При обращении к подпрограмме формируется адрес возврата ( а 1), который одновременно определяет адрес первого слова таблицы фактических параметров. В подпрограмме программным путем производится расшифровка таблицы, в результате чего определяются адреса и значения фактических параметров. Количество слов п может указываться в первом слове таблицы фактических параметров. Вычисление адреса возврата может производиться путем модификации адреса команды, обеспечивающей выход из подпрограммы. [45]