Cтраница 1
Прерываемая команда [ restartable instruction ] - команда, выполнение которой может быть приостановлено при возникновении прерывания и продолжено после его обработки. [1]
Выполнение прерываемой команды завершается, когда завершаются все элементы операции, связанные с этой командой. Когда прерывание происходит после завершения, аннулирования или подавления некоторого элемента операции, все предшествующие элементы операции уже завершены. [2]
Распознавание особых случаев доступа. [3] |
Выполнение прерываемых команд СРАВНЕНИЕ ЛОГИЧЕСКОЕ ДЛИННОЕ и ПЕРЕСЫЛКА ДЛИННАЯ начинается, если только нет особых случаев доступа, связанных с обращением к таблицам динамической переадресации в пределах страниц, содержащих начало обоих операндов. Кроме того, начало операции может также зависеть от наличия особых случаев, связанных с обращением к таблицам в пределах вторых страниц каждого операнда. [4]
Выполнение прерываемых команд ПЕРЕСЫЛКА ДЛИННАЯ и СРАВНЕНИЕ КОДОВ ДЛИННОЕ может вызвать события, заключающиеся в изменении содержимого общих регистров или в выборке команды. Кроме того, при выполнении команды ПЕРЕСЫЛКА ДЛИННАЯ может иметь место событие, состоящее в изменении содержимого памяти. [5]
Если при выполнении прерываемой команды имеют место условия прерывания ввода-вывода, внешнего прерывания или прерывания от схем контроля, то прерывание, вызываемое наступлением программного события, происходит первым, а возможность прерываний ввода-вывода, внешнего прерывания или прерывания от схем контроля определяется битами масок в новом PSW. Аналогично, если во время выполнения прерываемой команды процессор должен перейти в состояние стоп, но уже возникло условие прерывания по программному событию, то это прерывание произойдет до перехода в состояние стоп. Если возникает особый случай при динамической переадресации и имеется еще не обработанное условие прерывания по программному событию, то оно указывается вместе с условием, возникшим при переадресадии. Обычно программное событие не вызывает прерывания выполнения команды, которая является прерываемой, если нет какого-либо другого условия, вызывающего асинхронное прерывание. Однако на некоторых моделях в определенных ситуациях программное событие может прервать выполнение такой команды даже при отсутствии условия асинхронного прерывания или особого случая в программе. [6]
Когда при выполнении прерываемой команды элемент операции прекращается, содержимое всех полей, которые должны быть изменены этой командой, вообще говоря, является непредсказуемым. После прерывания адрес команды в старом PSW указывает на команду, расположенную непосредственно за прерванной командой. [7]
Когда при выполнении прерываемой команды происходит прерывание для регистрации программных событий, в коде длины команды указывается либо длина данной команды, либо длина команды ВЫПОЛНИТЬ, с помощью которой выполняется данная команда. [8]
Для некоторых команд, называемых прерываемыми командами, прерывание разрешено после частичного выполнения команды. Считается, что выполнение прерываемой команды складывается из выполнения ряда элементов операций, и процессору разрешается производить прерывания между этими элементами. [9]
Если операция или ( в случае прерываемой команды) элемент операции подавляется или аннулируется, то указание о переходе и изменении содержимого памяти или общего регистра не делается. [10]
Такая ситуация может возникнуть в случае прерываемых команд, когда событие зафиксировано в элементе операции, выполнение которого было завершено, а следующий элемент операции подавляется или аннулируется. [11]
С-операция или часть операции ( в случае прерываемой команды) завершается. [12]
С-операция или элемент операции ( в случае прерываемой команды) завершается. [13]
Прерывание, вызываемое событием в программе, происходит до завершения выполнения прерываемой команды. [14]
Обычно не следует также допускать, чтобы сама команда ВЫПОЛНИТЬ была расположена в ячейке результата прерываемой команды, на которую она указывает, так как для возобновления выполнения может потребоваться повторная выборка и расшифровка команды ВЫПОЛНИТЬ. [15]