Операции управления

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002068.docx

 Операции управления

Предназначены для организации переходов при выполнении про- граммы. В команде в явном виде указывается адрес следующей команды АСК. Для организации условных переходов кроме АСК указывается при- знак, по которому происходит переход. Обычно значение признака уста- навливается предыдущей командой. Типичные признаки:

v  Результат равен нулю;

v  Результат отрицательный;

v  Результат положительный;

v  Переполнение.

Некоторые операции не формируют признак результата. Для выпол- нения условного перехода после такой операции в программу включают специальную команду, формирующую признак результата. Типичным примером такой команды является команда “Сравнить”.

Для организации вызова подпрограмм применяют операции типа "пе- реход с возвратом". Перед выполнением перехода эта операция запоми- нает в памяти “точку возврата” - текущее значение счетчика команд. По- сле завершения подпрограммы в счетчик заносится запомненное значе- ние, то есть возобновляется выполнение программы.

Для управления вызовами подпрограмм используется специальный

механизм, называемый стеком.   Сущность   этого


ОпусканиеПодъемЗаписать


Вытолкнуть


механизма приведена на рисунке.

49Стек представляет со- бой область памяти. Нача- ло этой области памяти называется вершиной сте- ка. В вершину стека зано- сятся данные выполняю-


щейся подпрограммы. Вызов подпрограммы приводит к “опусканию” сте- ка, после чего в вершине запоминается счетчик команд выполнявшейся подпрограммы. Возврат из подпрограммы вызывает “подъем” стека. Это приводит к выталкиванию из вершины стека и занесению в счетчик ко- манд запомненного адреса очередной команды и восстановлению в вер- шине стека данных предыдущей подпрограммы.

Таким образом, в вершине стека всегда находятся данные выполняе- мой в данный момент подпрограммы. Программа считается выполненной, если стек становится пустым. Рассмотрим этот процесс на примере вы- полнения приведенной на рисунке программы. На схеме отражен про- цесс запоминания данных выполняемой подпрограммы.

Действие:         Вызов Main>Вызов F1>Вызов F2>Возврат из F2>Возврат из

F1>Возврат из Main

Стек:     Пусто    Main      F1              F2          F1            Main       Пусто

Main             F1        Main Main