Операции управления
Предназначены для организации переходов при выполнении программы. В команде в явном виде указывается адрес следующей команды АСК. Для организации условных переходов кроме АСК указывается признак, по которому происходит переход. Обычно значение признака устанавливается предыдущей командой. Типичные признаки:
v Результат равен нулю;
v Результат отрицательный;
v Результат положительный;
v Переполнение.
Некоторые операции не формируют признак результата. Для выполнения условного перехода после такой операции в программу включают специальную команду, формирующую признак результата. Типичным примером такой команды является команда “Сравнить”.
Для организации вызова подпрограмм применяют операции типа "переход с возвратом". Перед выполнением перехода эта операция запоминает в памяти “точку возврата” - текущее значение счетчика команд. После завершения подпрограммы в счетчик заносится запомненное значение, то есть возобновляется выполнение программы.
Для управления вызовами подпрограмм используется специальный механизм, называемый стеком. Сущность этого механизма приведена на рисунке.
Стек представляет собой область памяти. Начало этой области памяти называется вершиной стека. В вершину стека заносятся данные выполняющейся подпрограммы. Вызов подпрограммы приводит к “опусканию” стека, после чего в вершине запоминается счетчик команд выполнявшейся подпрограммы. Возврат из подпрограммы вызывает “подъем” стека. Это приводит к выталкиванию из вершины стека и занесению в счетчик команд запомненного адреса очередной команды и восстановлению в вершине стека данных предыдущей подпрограммы.
Таким образом, в вершине стека всегда находятся данные выполняемой в данный момент подпрограммы. Программа считается выполненной, если стек становится пустым. Рассмотрим этот процесс на примере выполнения приведенной на рисунке программы. На схеме отражен процесс запоминания данных выполняемой подпрограммы.
Действие: Вызов Main>Вызов F1>Вызов F2>Возврат из F2>Возврат из F1>Возврат из Main
Стек: Пусто Main F1 F2 F1 MainПусто
Main F1 Main
Main
Дата добавления: 2019-02-08; просмотров: 516;