Cтраница 3
Первый операнд макрокоманды определяет внешнее имя, которому будет передаваться управление. При желании в качестве первого операнда можно написать ( 15), но для этого программист предварительно должен в регистр 15 поместить адрес точки входа. Если имеется третий операнд VL, то в бите знака последнего адреса в списке адресов указывается знак минус. Этим средством нужно пользоваться, когда число аргументов является величиной переменной, для того, чтобы легко обнаружить конец списка. Если в поле операнда записано ID ав, то после всех команд и констант, порожденных макрокомандой CALL, генерируется команда NOP, которая в последних двух байтах содержит значение абсолютного выражения ( ав) в виде двоичного полуслова. [31]
Распечатка распределения памяти содержит сведения о программных секциях, входящих в загрузочный модуль. Редактор выдает следующие сведения о программной секции: имя, относительный начальный адрес, длину, номер сегмента для программ с перекрытием, имена и адреса точек входа. Для Редактора каждая программная единица Фортрана ( основная программа, подпрограмма) и каждая область COMMON являются программной секцией. Программные секции, вызываемые из наборов данных дополнительного ввода, отмечаются звездочкой, которая следует за именем секции. [32]
Распечатка распределения памяти содержит сведения о программных секциях, входящих в загрузочный модуль. Редактор выдает следующие сведения о программной секции: имя, относительный начальный адрес, длину, номер сегмента для программ с перекрытием, имена и адреса точек входа. Для Редактора каждая программная единица Фортрана ( основная программа, подпрограмма) и каждая область COMMON является программной секцией. Программные секции, вызываемые из наборов данных дополнительного ввода, отмечаются звездочкой, которая следует за именем секции. [33]
Эффективный метод прерывания, реализуемый аппаратно при работе с множеством разнотипных устройств, каждое из которых способно формировать сигналы прерывания, причем для каждого типа устройства требуется своя уникальная программа обработки прерываний. При успешном выполнении прерывания процессора устройство сообщает процессору адрес точки входа в вектор прерываний. Процессор использует этот адрес для передачи управления соответствующей программе обработки прерывания. [34]
Объектный модуль заканчивается картой END. В ней может быть указан адрес точки входа в модуль. В этом случае в 6 - 8 - й колонках находится адрес точки входа, а в 15 - 16 - й колонках - ESDID секции, содержащей эту точку. [35]
Программа обработки прерываний от таймера завершается машинной командой выхода из прерывания. Таким образом, в описываемой реализации программной системы служба системного времени отключена. Если ее необходимо сохранить, то в программе обработки прерываний от таймера следует вместо команды выхода из прерываний RTI записать команду передачи управления ( с косвенной адресацией) в ячейку, в которой должен быть адрес точки входа системной программы обработки прерываний от таймера. Этот адрес необходимо переписать из ячейки памяти с восьмеричным адресом 100 ( первое слово вектора прерываний от таймера) в самом начале работы программного комплекса перед тем, как в данную ячейку будет помещен адрес несистемной программы обработки прерываний от таймера. [36]
Элементом библиотеки абсолютных модулей является фаза, получаемая в результате работы Редактора. Фаза может быть отдельной программой или частью многофазовой программы. Информация об элементах записывается в оглавление, в котором для каждой фазы содержатся: ее адрес в библиотеке, объем, адрес основной памяти, начиная с которого фаза загружается в основную память для выполнения, адрес точки входа в фазу. [37]
Вызов программ для выполнения осуществляется в ПДО либо с помощью программы-загрузчика, либо с помощью программы выборки. Загрузчик вызывается по команде LOAD. Он загружает в память ВМ программы, представленные в виде объектных модулей. Адрес загрузки программы, адрес точки входа и перечень загружаемых модулей задаются в команде LOAD. В процессе работы загрузчик выполняет автоматический или управляемый пользователем поиск объектных модулей, необходимых для разрешения внешних ссылок, редактирование связей и настройку переместимых адресных констант. В силу того, что загруженная таким образом программа обычно является непереместимой, жестко привязанной к месту в основной памяти, ее называют абсолютным модулем. [38]
ЕР определяет точку входа в программу обработки сигнала внимания. В случае поступления нескольких сигналов внимания для этой программы последующие сигналы не обрабатываются до тех пор, пока не будут обработаны предыдущие. Если операнд ЕР опущен или задано его нулевое значение, то поступающие сигналы внимания ставятся в очередь. Если в какой-то момент с помощью исполнительной формы макрокоманды SAEC задать адрес точки входа в программу обработки сигнала внимания, то начнут обрабатываться сигналы внимания из очереди. [39]