Cтраница 3
Код прерывания и код длины команды при прерывании заносятся в старое PSW. Исключение составляет PSW, запоминаемое при прерывании от схем контроля. Как и в Системе 360, прерывания от каналов 0 - 5 управляются битами 0 - 5 PSW; и в результате выполнения команды ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ биты 29 и 30 регистра Ri, соответствующие битам обращения и изменения, устанавливаются равными нулю. Однако во время прерываний, связанных с расширенными или новыми функциями, используется ряд дополнительных, постоянно распределенных ячеек основной памяти, в том числе для запоминания кода прерывания от схем контроля, а также кода обращения к монитору и номера класса монитора при вызове монитора. [31]
В режиме ВС код длины команды в PSW невозможно предсказать, а в поле кода прерывания записываются нули. В режиме ЕС код прерывания и код длины команды не записываются. [32]
![]() |
Влияние длины слова на затраты памяти. [33] |
Длина адреса влияет на длину команды и, следовательно, на емкость и стоимость памяти, необходимую для размещения программы. Чтобы уменьшить емкость памяти, необходимо по возможности уменьшить затраты на адресацию информации. [34]
Биты 32 - 33 содержат код длины команды ( Instruction Length Code - ILC), определяющий число полуслов в последней выполняющейся команде: 01 -для команд формата RR; 10 - для команд форматов RX, RS и S. I; 11 - для команд формата SS; код 00 указывает, что длина команды не была определена вычислительной машиной. Это происходит, если, например, встретилась команда с несуществующим кодом операции. [35]
Для запоминания кода прерывания и кода длины команды во время прерываний определенных классов выделены отдельные ячейки основной памяти. Команда ПРОЧИТАТЬ КЛЮЧ ПАМЯТИ обеспечивает получение значений битов обращения и изменения. [36]
Для случаев 2 - 8 код длины команды равен 1, 2 или 3, что указывает на длину команды, вызвавшей обращение. [37]
Характеристика длины значения счетчика адреса равна длине команды, в которой сделана ссылка. [38]
Характеристика длины значения счетчика адреса равна длине команды, в которой этот терм появился. Исключение составляет характеристика счетчика адреса в операторах EQU, CNOP, ORG и в модификаторах операторов DS и DC, в которых характеристика длины значения счетчика адреса принимается равной единице. [39]
Характеристика длины значения счетчика адреса равна длине команды, в которой сделана ссылка. [40]
Адрес команды в текущем PSW увеличивается на длину команды ВЫПОЛНИТЬ. Этот продвинутый адрес и код длины команды ВЫПОЛНИТЬ, равный 2, используются в качестве части информации для возврата в том случае, если команда ВЫПОЛНИТЬ указывает на команду ПЕРЕХОД С ВОЗВРАТОМ. Если команда ВЫПОЛНИТЬ указывает на команду перехода и условия перехода удовлетворены, продвинутый адрес команды в текущем PSW замещается адресом перехода, заданным в указанной команде. [41]
![]() |
Структурная схема блока управляющих регистров. [42] |
РССП [ 32 / 33 ] содержит код длины команды ( КДК), вычитая который из продвинутого адреса, можно определить адрес исполняемой команды. В машине для оперативного повторения команды при сбоях адрес исполняемой команды хранится в РАКБ. [43]
Когда старое PSW задает режим ЕС, код длины команды для прерываний при обращении к супервизору и для программных прерываний записывается в биты 5 и 6 байтов с адресами 137 и 141 соответственно. Для прерываний ввода-вывода, внешних прерываний, прерываний от схем контроля машины и прерываний повторного пуска код не записывается. При прерываниях при обращении к супервизору и программных прерываниях код длины команды, не равный 0, определяет длину в полусловах последней выполнявшейся команды. При выполнении некоторой команды с помощью команды ВЫПОЛНИТЬ устанавливается код длины 2, определяющий длину команды ВЫПОЛНИТЬ, а не подчиненной команды, которая ею инициируется. [44]
Если после программного прерывания обнаруживается, что код длины команды равен 0, это означает, что программе не сообщается о том, где находится команда, вызвавшая прерывание. [45]