Состояние - стек - Большая Энциклопедия Нефти и Газа, статья, страница 2
Девушка, можно пригласить вас на ужин с завтраком? Законы Мерфи (еще...)

Состояние - стек

Cтраница 2


Теперь работа по выходу из подпрограммы состоит в передаче управления по адресу возврата и в перемещении указателя L. В результате восстанавливается то состояние стека. Если подпрограмма выработала какие-то результаты, то операция выхода должна включать в себя копирование результатов на место аргументов.  [16]

Теперь работа по выходу из подпрограммы состоит в передаче управления по адресу возврата и в перемещении указателя L. В результате восстанавливается то состояние стека, которое имело место при входе в подпрограмму. Если подпрограмма выработала какие-то результаты, то операция выхода должна включать в себя копирование результатов на место аргументов.  [17]

18 Выполнение операций над стеком. [18]

Для полного понимания принципов обработки прерываний программист должен хорошо представлять операции под стеком. На рис. 1.19 показаны три состояния стека.  [19]

Проанализируйте рассмотренный выше алгоритм вычисления выражения и приготовьте таблицу состояний стека, подобную приведенной на рис. 3.5. Как вы считаете, улучшилась ли от этого программа.  [20]

После вычисления значения процедуры-функции р и выхода из блока р переменные, локализованные в теле процедуры, становятся недоступными. Однако в общем случае возобновляется доступ к переменным, локализованным в блоке, из которого произошло обращение к процедуре. Следовательно, необходимо восстановить состояние стека, которое было до обращения к процедуре. Для этого используют связующую информацию, помещенную в начале участка стека, отведенного для процедуры-функции.  [21]

При каждом переходе к новой подпрограмме указатель стека перемещается к следующей ячейке, в которую и пересылается адрес возврата. Для осуществления возврата адрес возврата считывается из стека: содержимое верхней ячейки передается в адресный регистр, а указатель смещается вниз. На рис. 4.4 показано состояние стека в различные моменты при отображении ряда подпрограмм, входящих друг в друга.  [22]

В рассматриваемом примере подпрограмма второго уровня обеспечивает умножение чисел с тройной точностью. Во время выполнения этой подпрограммы необходимо выделить временную область памяти, используемую при выполнении команды сдвига влево содержимого 3-байтового поли, На рис. 13.12 показано размещение каждого байта множимого, занимающего 3 байт памяти в стеке. На рис. 13.12, а изображено состояние стека после пересылки в него младшего байта множимого. Указатель стека, изображенный на рисунке стрелкой, определяет здесь, как и везде, следующую свободную область стека.  [23]

При этом стек продвинется вверх, и состояние его будет запомнено. В качестве базового регистра области локальных данных вызванной процедуры будет использован регистр 4, его - прежнее содержимое будет автоматически сохранено в стеке, а доступ к регистрам с - номером выше четырех будет закрыт. После выполнения в процедуре команды воаврата автоматически восстанавливаются состояния стека и базовых регистров, которые они имели перед вызовом, исключая случай, когда вызванная процедура имела тип функций.  [24]

Решения приведенных ниже задач оформлены следующим образом: краткое пояснение собственно решения, алгоритм, программа для МК-54, контрольные вычисления. Справа от описания алгоритма отведены три столбца: для комментариев, величин и соответствующих им регистров памяти. Программа для МК-54 располагается вертикально, содержит столбцы, в которых отражается состояние стека, снабжена комментариями и разбита на горизонтальные полосы. Внутри одной полосы описывается, как правило, реализация одной строки алгоритма. Это соответствие отражено в комментариях к программе.  [25]

Окончив свое выполнение, процедура С выйдет на команду возврата, и процедура А продолжит свое выполнение. Вся необходимая для возврата информация находится в стеке, а адрес, опираясь на который можно осуществить этот возврат, находится в регистре F. В самом деле, в следующем слове за MSCW, на которое указывает F, расположено управляющее слово внешней процедуры, а в самом MSCW находится ссылка на MSCW, указывающая состояние стека внешней процедуры. В свою очередь, закончив свое выполнение, процедура А осуществляет возврат в самый внешний блок. Таким же путем производится обращение к процедуре В и от В и С.  [26]

27 Команды управления. [27]

Все команды выполняются в привилегированном режиме. Команды ЗАКРВП / ОТКВП устанавливают в 0 / 1 тригер МВП. Команда ВЫЧМА вычеркивает в ОП стоаницу с адресом в ABC. Команда СМСТЕК переключает процессор на новый стек; состояние текущего стека не запоминается.  [28]



Страницы:      1    2