Cтраница 2
Исключение из этого правила допустимо только для программ сохранения и восстановления регистров. [16]
Подпрограммы PUSH и POP на фортране. [17] |
Ранее было показано, как мржно применять стек для сохранения и восстановления регистров, в целях обеспечения автоматической вложенности вызовов подпрограмм и написания рекурсивных процедур. [18]
Форма межмодульных связей, при которой обеспечивается передача и возврат управления, а также сохранение и восстановление регистров. [19]
ВУ или канала указана ошибка или в регистре признаков не установлен признак ЦК, то осуществляется переход к установке запроса на прерывание типа КОНЕЧНОЕ и восстановлению регистров ЦП из локальной памяти. [20]
Некоторые программисты предлагают строить программу так, чтобы она легко разделялась на постоянную и изменяемую части; для этого переадресуемые команды, команды возврата и команды восстановления регистра адреса выносятся в отдельный массив. Такое программирование увеличивает затраты труда, усложняет схему программы ( так как требуется передавать управление на расположенные в одном массиве переадресуемые команды и возвращаться после их выполнения) и несколько удлиняет программу. Часто при решении многовариантных задач изменяемая часть программы бывает относительно невелика. [21]
ВУ установлен только один признак КК, а в регистре признаков указан признак ЦК, в канале устанавливаются триггеры ТБЛК-К и ТИНФ-К и осуществляется переход к восстановлению регистров ЦП из локальной памяти. [22]
При написании подпрограмм, которые используют универсальные регистры процессора, возникает проблема сохранения содержимого этих регистров. Процедура сохранения и восстановления регистров может выполняться в вызывающей и в вызываемой программе. [23]
Вызываемая программа должна начинаться с команд, запоминающих состояние общих регистров в области сохранения, переданной вызываемой программой, а перед возвратом управления - восстановить эти регистры. Для запоминания и восстановления регистров в системе предусмотрены специальные макрокоманды. [24]
Для осуществления прерываний в мониторе введены схемы копирования и восстановления регистров. Работа монитора может быть прервана только после выполнения очередной команды. Отсчет времени в системе осуществляется монитором с помощью специальных электронных часов. [25]
Для восстановления содержимого регистров ( Гь г2) следует позаботиться о том, чтобы перед выполнением макрокоманды RETURN в регистре 13 находился адрес области сохранения вызывавшей программы. Если аргумент Г2 опущен, то будет восстановлено содержимое одного регистра rt, Если опущены оба операнда Г ] и Г2, то восстановление регистров не производится. [26]
Обмен с прерыванием вычислений применяется обычно для приема и выдачи информации внешним устройствам с малым временем ожидания и для взаимодействия ЦВМ с аппаратурой отображения, регистрации и передачи данных, а также для связи с пультами операторов. Разновидностью этого способа является обмен с приостановом работы ЦВМ, когда работа счетчика адресов команд машины приостанавливается на несколько тактов, в течение которых схемным путем выполняются операции ввода или вывода информации из оперативной памяти машины. Последний способ значительно экономичнее по затратам времени, чем прерывание, так как не требует запоминания и восстановления регистров ЦВМ. Однако он связан с некоторым увеличением оборудования. [27]
Механизм прерываний является предметом ожесточенных споров между разработчиками аппаратуры и программного обеспечения. Проблема состоит в том, как следует распределять системные затраты. Разработчики операционных систем настаивают на минимизации общего времени обработки прерывания, а также времени, в течение которого другие прерывания запрещаются. В связи с этим они предлагают сложные структуры прерываний, позволяющие уменьшить число команд, выполняющих сохранение и восстановление регистров, а также определяющих причину прерывания. Разработчики аппаратуры из-за трудностей изготовления и высокой стоимости сложных схем предпочитают более простые структуры, требующие, конечно, более сложного процесса программной обработки прерываний. В результате этих споров было создано несколько оригинальных структур прерываний. [28]
Первое предложение ( MACRO) указывает на начало макроопределения. Оно представляет собой прототип макрокоманды. DP AS - это ее название ( мнемонический код операции), и она может иметь четыре операнда. Каждая псевдопеременная в макроопределении записывается, начиная с символа &. Это позволяет различать обычные переменные и псевдопеременные. Когда макроопределение используется в конкретной программе, ассемблер вместо каждой переменной, имя которой начинается с символа &, подставляет соответствующее имя переменной, взятое из поля операндов макрокоманды. Сначала в нашем макроопределении запоминаются регистры 0 и 1, а затем в эти регистры загружается первый операнд. Последнее - это запоминание результата в поле, которое задается четвертым операндом, и восстановление регистров. В программе есть команда, которая обходит 12 байтов, отведенных под константы и рабочие области, поскольку в исходной программе непосредственно за макрокомандой будет стоять другая команда. [29]