Cтраница 1
Выполнение подпрограммы начинается с символического адреса INAGN. По команде ВВОД данные пересылаются из порта ввода-вывода 01 в аккумулятор. Затем с помощью команды IRP В осуществляется положительное приращение регистровой пары ВС. [2]
Обычно выполнение подпрограммы начинается с первого выполняемого оператора, следующего за оператором FUNCTION или SUBROUTINE. Используя оператор ENTRY, можно определить дополнительные точки входа в подпрограмму, что позволяет начать выполнение подпрограммы с любого выполняемого оператора. [3]
После выполнения подпрограммы управление передается утверждению, следующему за утверждением CALL, вызвавшим процедуру. [4]
После выполнения подпрограммы управление передается утверждению, следующему за утверждением CALL, вызвавшим процедуры. [5]
После выполнения подпрограмм каналами управление передается ОК в подпрограмму окончания обработки прерываний. После этого управление передается подпрограмме ожидания запросов. Сигнал ТБ: 0 сбрасывает триггер блокировки, позволяя процессору продолжить микропрограмму обработки прерывания. Микропрограмма завершается записью в ОП текущего ССП и выборкой нового ( прил. [6]
После выполнения подпрограммы машина переходит в режим ожидания, прерванный обращением. [7]
![]() |
Параметры при повторном вызове нереентерабельной подпрограммы DIVIDE. [8] |
Если выполнение подпрограммы приостанавливается прерыванием, значения регистров и адресов возврата будут сохранены в стеке и полностью восстановлены при возврате. Однако если подпрограмма DIVIDE вызывается опять программой обработки прерывания, то старые значения параметров и локальной переменной будут утеряны навсегда. [9]
После выполнения подпрограммы управление передается оператору, непосредственно следующему за обращением. Существует и другой способ возврата из подпрограммы, позволяющий передать управление любому другому оператору вызывающей программы. [10]
Когда выполнение подпрограммы заканчивается, из стека извлекается значение счетчика команд. По завершении подпрограммы второго уровня вложения из стека изымается значение счетчика команд подпрограммы первого уровня вложения. Оно загружается в счетчик команд, после чего выполнение указанной подпрограммы может быть возобновлено, начиная с команды, которая следовала за командой ВЫЗОВ ПОДПРОГРАММЫ. Когда завершается выполнение подпрограммы первого уровня, из стека опять извлекается очередное значение счетчика команд. [12]
После выполнения подпрограммы всегда проводится проверка текущего положения курсора, чтобы при возвращении в основную часть программы курсор находился в поле редактирования. [13]
После выполнения подпрограммы ПЕРФОРАТОР монитор снова переводит систему в цикл ожидания следующей команды от программиста. [14]
После выполнения подпрограммы инициализации и перемотки магнитная лента устанавливается в точку начала ленты. [15]