Архитектура PDP-11 - это архитектура набора команд CISC (ISA), разработанная Digital Equipment Corporation (DEC). Это реализовано центральными процессорами (ЦП) и микропроцессорами, используемыми в миникомпьютерах PDP-11. Он широко использовался в 1970-х, но в конечном итоге был вытеснен более мощной архитектурой VAX-11 в 1980-х.
Шестнадцатиразрядные слова хранятся с прямым порядком байтов ( сначала младшие байты ). Тридцатидвухразрядные данные - поддерживаются как расширения базовой архитектуры, например, с плавающей запятой в наборе инструкций FPU, двойные слова в расширенном наборе инструкций или длинные данные в коммерческом наборе инструкций - хранятся в более чем одном формате, включая необычный формат с прямым порядком байтов, иногда называемый "PDP-endian".
16-битные адреса PDP-11 могут адресовать 64 КБ. К тому времени, когда PDP-11 уступил место VAX, 8-битные байты и шестнадцатеричное представление стали стандартом в отрасли; однако числовые значения на PDP-11 всегда используют восьмеричную нотацию, а объем памяти, подключенной к PDP-11, всегда указывается в виде количества слов. Базовое логическое адресное пространство составляет 32 КБ слов, но высокие 4 КБ физического адресного пространства (адреса с 160000 8 по 177777 8 при отсутствии управления памятью) не заполняются, потому что регистры ввода / вывода на шине отвечают на адреса в этом диапазоне. Итак, изначально полностью загруженный PDP-11 содержал 28К слов.
Процессор резервирует младшие адреса памяти для векторов из двух слов, которые дают счетчик программ и слово состояния процессора, с которых можно начать процедуру обслуживания. Когда устройство ввода-вывода прерывает программу, оно помещает адрес своего вектора на шину, чтобы указать, какая служебная процедура должна взять на себя управление. Самые низкие векторы - это служебные программы для обработки различных типов ловушек. Ловушки возникают при некоторых ошибках программы, таких как попытка выполнить неопределенную инструкцию; а также когда программа выполняет такую инструкцию, как BPT, EMT, IOT или TRAP, чтобы запросить обслуживание у операционной системы.
В статье PDP-11 описывается, как 16-битное логическое адресное пространство стало непреодолимым ограничением. Во время существования PDP-11 для обхода ограничения использовались следующие методы:
|
ЦП содержит восемь 16-разрядных регистров общего назначения (от R0 до R7). Регистр R7 - это счетчик программ (ПК). Хотя любой регистр может использоваться в качестве указателя стека, R6 является указателем стека (SP), используемым для аппаратных прерываний и ловушек. R5 часто используется для указания на текущий кадр вызова процедуры. Для ускорения переключения контекста в некоторых моделях PDP-11 предусмотрены двойные наборы регистров R1-R5. Ядро, Супервизор (если присутствует) и Пользовательский режимы имеют отдельные карты памяти, а также отдельные указатели стека (так что пользовательская программа не может вызвать сбой в работе системы, сохранив недопустимое значение в регистре указателя стека).
Большинство инструкций выделяют шесть битов для определения операнда. Три бита выбирают один из восьми режимов адресации, а три бита выбирают общий регистр.
Кодирование режима адресации шестибитных операндов выглядит следующим образом:
5 | 3 | 2 | 0 | ||
Режим | регистр |
В следующих разделах каждый элемент включает пример написания операнда на языке ассемблера. Rn означает один из восьми регистров, записанных с R0 по R7.
Следующие восемь режимов могут быть применены к любому общему регистру. Их эффекты при применении к R6 (указатель стека, SP) и R7 (счетчик программ, PC) изложены отдельно в следующих разделах.
Код | Имя | Пример | Описание |
---|---|---|---|
0n | регистр | Rn | Операнд находится в Rn |
1n | Регистрация отложена | (Rn) | Rn содержит адрес операнда |
2n | Автоматическое приращение | (Rn) + | Rn содержит адрес операнда, затем увеличивает Rn |
3n | Автоинкремент отложен | @ (Rn) + | Rn содержит адрес адреса операнда, затем увеличивает Rn на 2 |
4n | Автодекремент | - (Rn) | Уменьшите Rn, затем используйте результат как адрес операнда |
5н | Отложенный автодекремент | @ - (Rn) | Уменьшите Rn на 2, затем используйте результат как адрес адреса операнда. |
6n | Индекс | X (Rn) | Rn + X - адрес операнда |
7n | Индекс отложен | @X (Rn) | Rn + X - адрес адреса операнда |
В режимах с отложенным индексом и индексированием X - это 16-битное значение, взятое из второго слова инструкции. В командах с двойным операндом оба операнда могут использовать эти режимы. Такие инструкции состоят из трех слов.
Операции автоинкремента и автодекремента в регистре выполняются на 1 в байтовых инструкциях, на 2 в словарных инструкциях и на 2 всякий раз, когда используется отложенный режим, поскольку количество адресов регистра является (словесным) указателем.
Когда указан R7 (программный счетчик), четыре режима адресации, естественно, дают полезные эффекты:
Код | Имя | Пример | Описание |
---|---|---|---|
27 | Немедленный | #n | Операнд - это следующее слово инструкции |
37 | Абсолютный | @ # а | Адрес операнда - это следующее слово инструкции |
67 | Родственник | а | Адрес операнда - это следующее слово инструкции, добавляемой в ПК. |
77 | Относительно отложенный | @a | Адрес адреса операнда - это следующее слово инструкции, добавляемой в ПК. |
Единственное распространенное использование абсолютного режима, синтаксис которого сочетает в себе немедленный и отложенный режим, - это указание регистров ввода / вывода, поскольку регистры для каждого устройства имеют определенные адреса памяти. Относительный режим имеет более простой синтаксис и более типичен для обращения к программным переменным и пунктам назначения перехода. Программа, которая использует относительный режим (и относительный отложенный режим) исключительно для внутренних ссылок, не зависит от позиции ; он не содержит предположений о своем собственном местоположении, поэтому его можно загрузить в произвольную ячейку памяти или даже переместить без необходимости корректировки его адресов для отражения его местоположения ( перемещенного ). При вычислении таких адресов относительно текущего местоположения процессор выполнял перемещение на лету.
Немедленный и абсолютный режимы - это просто режим отложенного автоинкремента и автоинкремента, соответственно, применяемые к ПК. Когда вспомогательное слово находится «в инструкции», как сказано в приведенной выше таблице, ПК для следующей инструкции автоматически получает приращение после вспомогательного слова. Поскольку ПК всегда указывает на слова, операция автоинкремента всегда на 2.
R6, также обозначаемый как SP, используется в качестве аппаратного стека для ловушек и прерываний. Соглашение, обеспечиваемое набором режимов, предоставляемых PDP-11, заключается в том, что стек растет вниз - к более низким адресам - по мере того, как в него помещаются элементы. Когда режим применяется к SP или к любому регистру, который программист выбирает для использования в качестве программного стека, режимы адресации имеют следующие эффекты:
Код | Имя | Пример | Описание |
---|---|---|---|
16 | Отложено | (SP) | Операнд находится наверху стека |
26 год | Автоматическое приращение | (SP) + | Операнд находится наверху стека, затем вытащите его |
36 | Автоинкремент отложен | @ (SP) + | Указатель на операнд находится на вершине стека; убрать указатель |
46 | Автодекремент | - (SP) | Помещать значение в стек |
66 | Проиндексировано | X (SP) | Это относится к любому элементу в стеке по положительному расстоянию от вершины. |
76 | Индексированный отложенный | @X (SP) | Это относится к значению, на которое указатель находится в указанном месте в стеке. |
Хотя программные стеки могут содержать байты, SP всегда является стеком слов. Операции автоинкремента и автодекремента для SP всегда на 2.
PDP-11 оперирует байтами и словами. Байты определяются номером регистра, определяющим младший байт регистра, или ячейкой памяти. Слова определяются номером регистра или ячейкой памяти младшего байта, который должен быть четным числом. В большинстве инструкций, которые принимают операнды, бит 15 установлен для указания байтовой адресации или снят для указания адресации слов. В списках в следующих двух разделах программист на ассемблере добавил B к символу инструкции, чтобы указать байтовую операцию; например, MOV превратился в MOVB.
Некоторые инструкции, например MARK и SOB, не были реализованы на некоторых моделях PDP-11.
Четыре старших бита определяют операцию, которая должна быть выполнена (бит 15 обычно выбирает адресацию слов, а не байтов). Две группы по шесть битов определяют режим адресации операнда источника и режим адресации операнда назначения, как определено выше.
15 | 12 | 11 | 9 | 8 | 6 | 5 | 3 | 2 | 0 | ||||||
Код операции | Src | регистр | Dest | регистр |
Код операции | Мнемонический | Операция |
---|---|---|
01 | MOV | Двигаться: Dest ← Src Примечание: при перемещении байта в регистр знак расширяется до битов 8-15. |
11 | MOVB | |
02 | CMP | Сравнивать: Set-flags(Src − Dest) |
12 | CMPB | |
03 | НЕМНОГО | Битовый тест: Set-flags(Src ∧ Dest) |
13 | BITB | |
04 | BIC | Немного ясно: Dest ← Dest ∧ Ones-complement(Src) |
14 | BICB | |
05 | БИС | Набор бит: Dest ← Dest ∨ Src |
15 | BISB | |
06 | ДОБАВЛЯТЬ | Добавлять: Dest ← Dest + Src |
16 | SUB | Вычесть: Dest ← Dest − Src |
Команды ADD и SUB используют адресацию слов и не имеют побайтно-ориентированных вариаций.
Некоторые инструкции с двумя операндами используют операнд режима адресации и дополнительный регистровый операнд:
15 | 9 | 8 | 6 | 5 | 3 | 2 | 0 | ||||||||
Код операции | Рег | Src / Dest | регистр |
Если используется пара регистров (записанная ниже как «(Reg, Reg + 1)», первый регистр содержит младшую часть операнда и должен быть регистром с четным номером. Следующий регистр с более высоким номером содержит старшую часть часть операнда (или остаток). Исключением является инструкция умножения; Reg может быть нечетным, но если это так, старшие 16 бит результата не сохраняются.
Код операции | Мнемонический | Операция |
---|---|---|
070 | MUL | Умножить: (Reg, Reg+1) ← Reg × Src |
071 | DIV | Делить: Compute (Reg, Reg+1) ÷ Src; Reg ← quotient; Reg+1 ← remainder |
072 | ПЕПЕЛ | Арифметический сдвиг: if Srclt;5:0gt; lt; 0 then Reg ← Shift-right(Reg, -Srclt;5:0gt;) else Reg ← Shift-left(Reg, Srclt;5:0gt;) |
073 | ASHC | Комбинированный арифметический сдвиг: if Srclt;5:0gt; lt; 0 then (Reg, Reg+1) ← Shift-right((Reg, Reg+1), -Srclt;5:0gt;) else (Reg, Reg+1) ← Shift-left((Reg, Reg+1), Srclt;5:0gt;) |
074 | XOR | Эксклюзивный или: Dest ← Dest ⊻ Reg |
Десять битов старшего разряда определяют выполняемую операцию, при этом бит 15 обычно выбирает байтовую адресацию, а не словесную. Одна группа из шести битов определяет операнд, как определено выше.
15 | 6 | 5 | 3 | 2 | 0 | ||||||||||
Код операции | Src / Dest | регистр |
Код операции | Мнемонический | Операция |
---|---|---|
0001 | JMP | Прыгать: PC ← Src |
0003 | ТАМПОН | Поменять местами байты слова: Dest ← Swap-bytes(Dest) |
0050 | CLR | Ясно: Dest ← 0 |
1050 | CLRB | |
0051 | COM | Дополнение: Dest ← Ones-complement(Dest) |
1051 | ГРЕБЕНЬ | |
0052 | INC | Приращение: Dest ← Dest + 1 |
1052 | INCB | |
0053 | DEC | Уменьшение: Dest ← Dest − 1 |
1053 | DECB | |
0054 | NEG | Отрицать: Dest ← Twos-complement(Dest) |
1054 | NEGB | |
0055 | АЦП | Добавить перенос: Dest ← Dest + C flag |
1055 | ADCB | |
0056 | SBC | Вычесть перенос: Dest ← Dest - C flag |
1056 | SBCB | |
0057 | TST | Контрольная работа: Set-flags(Src) |
1057 | TSTB | |
0060 | ROR | Повернуть вправо: Dest ← Rotate-right(Dest, 1) |
1060 | RORB | |
0061 | ROL | Повернуть налево: Dest ← Rotate-left(Dest, 1) |
1061 | ROLB | |
0062 | ASR | Арифметический сдвиг вправо: Dest ← Shift-right(Dest, 1) |
1062 | ASRB | |
0063 | ASL | Арифметический сдвиг влево: Dest ← Shift-left(Dest, 1) |
1063 | ASLB | |
1064 | MTPS | Перейти в PSW: PSW ← Src |
0065 | MFPI | Перейти из предыдущего I пробела: −(SP) ← Src |
1065 | MFPD | Перейти из предыдущего пробела D: −(SP) ← Src |
0066 | MTPI | Перейти к предыдущей позиции I: Dest ← (SP)+ |
1066 | MTPD | Перейти к предыдущей позиции D: Dest ← (SP)+ |
0067 | SXT | Знак продлить: if N flag ≠ 0 then Dest ← -1 else Dest ← 0 |
1067 | MFPS | Перейти из PSW: Dest ← PSW |
В большинстве инструкций перехода решение о переходе зависит от состояния кодов условий. Команде ветвления обычно предшествует инструкция с двумя операндами CMP (сравнение), BIT (битовая проверка) или инструкция TST с одним операндом (проверка). Арифметические и логические инструкции также устанавливают коды условий. В отличие от процессоров Intel в архитектуре x86, инструкции MOV также устанавливают их, поэтому для перехода можно использовать инструкцию ветвления в зависимости от того, было ли перемещенное значение нулевым или отрицательным.
Старший байт инструкции определяет операцию. Биты с 9 по 15 - это код операции, а бит 8 - это значение вычисления кода условия, в результате которого выполняется переход. Младший байт - это смещение слова со знаком относительно текущего местоположения программного счетчика. Это позволяет выполнять прямые и обратные переходы в коде.
15 | 9 | 8 | 7 | 0 | |||||||||||
Код операции | C | Компенсировать |
Код операции | C | Мнемонический | Состояние или работа |
---|---|---|---|
000 | 1 | BR | Филиал всегда PC ← PC + 2 × Sign-extend(Offset) |
001 | 0 | BNE | Ветвь, если не равно Z = 0 |
001 | 1 | БЫТЬ Q | Ветвь, если равно Z = 1 |
002 | 0 | BGE | Переходить, если больше или равно (N ⊻ V) = 0 |
002 | 1 | BLT | Ветвь, если меньше чем (N ⊻ V) = 1 |
003 | 0 | BGT | Ветвь, если больше, чем (Z ∨ (N ⊻ V)) = 0 |
003 | 1 | BLE | Переходить, если меньше или равно (Z ∨ (N ⊻ V)) = 1 |
100 | 0 | BPL | Ветвь, если плюс N = 0 |
100 | 1 | ИМТ | Ветвь, если минус N = 1 |
101 | 0 | BHI | Ветвь, если выше (C ∨ Z) = 0 |
101 | 1 | BLOS | Ветвь, если ниже или такая же (C ∨ Z) = 1 |
102 | 0 | BVC | Перейти, если сбросить переполнение V = 0 |
102 | 1 | BVS | Переход, если установлено переполнение V = 1 |
103 | 0 | BCC или BHIS | Ветвь, если несёт ясно, или Ветвь, если выше или такая же C = 0 |
103 | 1 | BCS или BLO | Переход, если установлен перенос, или Переход, если ниже C = 1 |
Ограниченный диапазон инструкций ветвления означал, что по мере роста кода целевые адреса некоторых ветвей становились недоступными. Программист изменил бы однословную BR на двухсловную инструкцию JMP из следующей группы. Поскольку JMP не имеет условных форм, программист должен изменить BEQ на BNE, который разветвляется вокруг JMP.
SOB (вычитание единицы и переход) - еще одна инструкция условного перехода. Указанный регистр уменьшается на 1, и если результат не равен нулю, выполняется обратная ветвь на основе 6-битного смещения слова.
15 | 9 | 8 | 6 | 5 | 0 | ||||||||||
Код операции | Рег | Компенсировать |
Код операции | Мнемонический | Операция |
---|---|---|
077 | Сука | Subtract One and Branch: Reg ← Reg - 1; if Reg ≠ 0 then PC ← PC - 2 × Offset |
Инструкция JSR может сохранить любой регистр в стеке. Программы, которым эта функция не нужна, указали ПК в качестве регистра (ПК JSR, адрес) и процедуру, возвращенную с помощью ПК RTS. Если подпрограмма была вызвана, например, с «адресом JSR R4», то старое значение R4 будет наверху стека, а адрес возврата (сразу после JSR) будет в R4. Это позволило подпрограмме получить доступ к значениям, закодированным в строке, указав (R4) +, или к встроенным указателям, указав @ (R4) +. Автоинкремент прошел мимо этих данных до точки, в которой код вызывающего абонента возобновился. Такая процедура должна указать RTS R4 для возврата к вызывающему.
15 | 9 | 8 | 6 | 5 | 3 | 2 | 0 | ||||||||
Код операции | Рег | Src | регистр |
Код операции | Мнемонический | Операция |
---|---|---|
004 | JSR | Перейти к подпрограмме: -(SP) ← Reg; Reg ← PC; PC ← Src |
15 | 3 | 2 | 0 | ||||||||||||
Код операции | Рег |
Код операции | Мнемонический | Операция |
---|---|---|
00020 | РТС | Возврат из подпрограммы: PC ← Reg; Reg ← (SP)+ |
15 | 9 | 8 | 7 | 0 | |||||||||||
Код операции | S | Код операции |
Код операции | S | Мнемонический | Операция |
---|---|---|---|
104 | 0 | ЕМТ | Ловушка эмулятора: -(SP) ← PS; -(SP) ← PC; PC ← (30); PS ← (32) |
104 | 1 | ЛОВУШКА | Общая ловушка: -(SP) ← PS; -(SP) ← PC; PC ← (34); PS ← (36) |
15 | 0 | ||||||||||||||
Код операции |
Код операции | Мнемонический | Операция |
---|---|---|
000002 | RTI | Возврат из прерывания: PC ← (SP)+; PS ← (SP)+ |
000003 | BPT | Ловушка точки останова: -(SP) ← PS; -(SP) ← PC; PC ← (14); PS ← (16) |
000004 | IOT | Ловушка ввода / вывода: -(SP) ← PS; -(SP) ← PC; PC ← (20); PS ← (22) |
000006 | RTT | Возвращение из ловушки: PC ← (SP)+; PS ← (SP)+ |
Вектор | Условие |
---|---|
000000 | (Зарезервированный) |
000004 | Недопустимая инструкция, ошибка шины, ограничение стека |
000010 | Зарезервированная инструкция |
000014 | Инструкция BPT, трассировка ловушки |
000020 | Инструкция по IOT |
000030 | Инструкция ЕМТ |
000034 | Инструкция TRAP |
000244 | Исключение с плавающей точкой |
000250 | Ошибка управления памятью |
15 | 0 | ||||||||||||||
Код операции |
Код операции | Мнемонический | Операция |
---|---|---|
000000 | HALT | Остановить процессор: Halt execution before next instruction |
000001 | ЖДАТЬ | Дождитесь прерывания: Halt execution before next instruction; Resume execution at next interrupt handler |
000005 | СБРОС НАСТРОЕК | Сбросить UNIBUS: Assert INIT on UNIBUS for 10 ms; All other devices reset to power up state |
15 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||||||
Код операции | 1 | S | N | Z | V | C |
Код операции | S | Мнемонический | Операция |
---|---|---|---|
0002 | 0 | Ccc | Очистить коды условий: Clear codes according to N, Z, V, C bits |
0002 | 1 | Scc | Установите коды состояния: Set codes according to N, Z, V, C bits |
Четыре кода состояния в слове состояния процессора (PSW):
Инструкции в этой группе представляли собой то, что компания Digital называла «микропрограммированными»: единственный бит в командном слове ссылался на единственный код состояния. Ассемблер не определил синтаксис для определения каждой комбинации, но символы SCC и CCC составляют инструкцию, которая устанавливает или очищает, соответственно, все четыре кода условий.
Очистка или установка ни одного из кодов условий (коды операций 000240 и 000260 соответственно) могут эффективно рассматриваться как инструкции, не требующие выполнения операции. Фактически, мнемоника NOP собрана в 000240.
EIS был опцией для 11/35/40 и 11/03 и был стандартным для новых процессоров.
Набор инструкций FIS был опцией для PDP-11/35/40 и 11/03.
Это был дополнительный вариант процессора с плавающей запятой для 11/45 и большинства последующих моделей.
CIS был реализован с помощью дополнительного микрокода в 11/23/24 и с помощью дополнительного модуля в 11/44 и в одной версии 11/74. Он предоставил строковые и десятичные инструкции, используемые COBOL и Dibol.
PSW был отображен на адрес памяти 177 776, но инструкции, найденные на всех, кроме самых ранних PDP-11, давали программам более прямой доступ к регистру.
На PDP-11, которые предоставляли несколько пространств для инструкций и пространств данных, набор неортогональных инструкций Move давал доступ к другим пространствам. Например, подпрограммы в операционной системе, которые обрабатывали вызовы службы времени выполнения, могли бы использовать эти инструкции для обмена информацией с вызывающей стороной.
За время жизни PDP-11 возникли тонкие различия в реализации инструкций и комбинаций режимов адресации, хотя ни одна реализация не считалась правильной. Несоответствия не повлияли на обычное использование PDP-11.
Скорость процессора PDP-11 зависит от модели, конфигурации памяти, операционного кода и режимов адресации. Синхронизация инструкции включает до трех компонентов: выполнение / выборка самой инструкции и время доступа для источника и пункта назначения. Последние два компонента зависели от режима адресации. Например, на PDP-11/70 (около 1975 г.) команда вида ADD x (R m), y (R n) имела время выборки / выполнения 1,35 микросекунды плюс время источника и назначения по 0,6 микросекунды каждая., что дает общее время инструкции 2,55 микросекунды. Любой случай, когда адресуемая память не была в кэше, добавляет 1,02 микросекунды. Регистр-регистр ADD R m, R n может выполняться из кэша за 0,3 микросекунды. С плавающей запятой было еще сложнее, поскольку между ЦП и процессором с плавающей запятой было некоторое перекрытие, но в целом с плавающей запятой было значительно медленнее. Команда сложения с плавающей точкой одинарной точности может составлять от 2,4 до 5,5 микросекунд плюс время на выборку операндов.
PDP-11 работал с уровнем приоритета от 0 до 7, объявленным тремя битами в слове состояния процессора (PSW), а модели высокого класса могли работать в различных режимах: ядро (привилегированный), пользовательский (приложение), и иногда Supervisor, согласно двум битам в PSW.
Чтобы запросить прерывание, устройство шины будет использовать одну из четырех линий общей шины с BR4 по BR7, пока процессор не ответит. Более высокие числа указывают на большую срочность, возможно, что данные могут быть потеряны или нужный сектор может выйти из контакта с головками чтения / записи, если процессор не отреагирует быстро. Готовность принтера к другому символу была самым низким приоритетом (BR4), так как он будет оставаться готовым бесконечно. Если бы процессор работал на уровне 5, то BR6 и BR7 были бы в порядке. Если бы процессор работал на 3 или ниже, он выдал бы любое прерывание; если в 7, он не предоставит ни одного. Запросы на автобус, которые не были удовлетворены, не терялись, а просто откладывались. Устройство, нуждающееся в обслуживании, продолжит подтверждать свой запрос шины.
Каждый раз, когда прерывание превышало уровень приоритета процессора, процессор выдавал соответствующее разрешение шины, от BG4 до BG7. Линии предоставления шины не были общими линиями, а представляли собой шлейфовую цепочку : вход каждого элемента был выходом предыдущего элемента в цепочке. Шлюз был на каждом устройстве шины, а устройство, физически ближе к процессору, было раньше в гирляндной цепи. Если устройство сделало запрос, то, обнаружив вход разрешения шины, оно могло бы сделать вывод, что оно контролирует шину и не передало сигнал разрешения следующему устройству на шине. Если устройство не отправляло запрос, оно распространяло входные данные разрешения шины на выход разрешения шины, давая возможность ответить следующему ближайшему устройству. (Если устройства не занимали слоты, смежные с процессорной платой, «карты предоставления целостности», вставленные в пустые слоты, распространяли линию разрешения шины.)
Получив управление шиной, устройство сбросило свой запрос шины и поместило на шину адрес памяти своего вектора из двух слов. Процессор сохранил счетчик программ (ПК) и PSW, перешел в режим ядра и загрузил новые значения из указанного вектора. Для устройства в BR6 новый PSW в своем векторе обычно будет указывать 6 в качестве нового приоритета процессора, поэтому процессор будет учитывать более срочные запросы (BR7) во время процедуры обслуживания, но откладывать запросы с таким же или более низким приоритетом. В новом ПК процессор перешел к процедуре обслуживания прерывающего устройства. Эта процедура управляла устройством, по крайней мере, устраняя условие, вызвавшее прерывание. Процедура завершилась инструкцией RTI (ReTurn from Interrupt), которая восстановила PC и PSW как раз перед тем, как процессор предоставил прерывание.
Если запрос шины был сделан по ошибке и ни одно устройство не ответило на предоставление шины, процессор прервал тайм-аут и выполнил ловушку, которая указала бы на неисправное оборудование.
MACRO-11 - это ассемблер для PDP-11. Это преемник PAL-11 (Program Assembler Loader), более ранней версии языка ассемблера PDP-11 без средств макросов. MACRO-11 поддерживался во всех операционных системах DEC PDP-11. PDP-11 Unix- системы также включают ассемблер (называемый « as »), структурно подобный MACRO-11, но с другим синтаксисом и меньшим количеством функций.