Структура команд

Существенной новацией структуры команд ЭВМ PDP-11 является всесторонне развитая система адресации и использование стека при обращении к подпрограммам и при обслуживании прерываний. Эти механизмы стали нормой для многих последующих ЭВМ различных корпораций.

По количеству адресов операндов ЭВМ PDP-11 использует безадресные, одноадресные и двухадресные команды. Основной (полный) формат имеют двухадресные команды (рис.4.3). Они содержат поля:

· кода операции,

· адреса операнда источника,

· адреса операнда приемника.

Код операции адрес источника адрес приемника
режим РОН режим РОН
Рис.4.3. Структура двухадресной команды

Код операции. Код операции задает операцию, структуру команды и размер операнда.

Двухадресные команды – это, в основном, команды работы с битами. Исключения составляют команды пересылки и две команды арифметических операций (сложения и вычитания слов в форме фиксированной запятой).

Из возможных 16 кодов для кодирования операции используются только четыре. Остальные коды используются для обозначения других дополнительных команд. Эти дополнительные форматы команд представлены на рис. 4.4.

Все рассмотренные команды являются шестнадцатибитными, т.е. занимают одно слово, но в зависимости от типов используемых адресаций они могут включать в себя дополнительные поля длиной одно или два слова. Второе и третье слова команды это или адреса, или непосредственно заданные значения операндов.

 
Код операции (6 бит) R – источник (3 б) адрес приемника (6 бит) a
Код операции (6 бит) R – источник (3 б) Смещение (6 бит) b
Код операции (10 б) адрес приемника (6 бит) c
Код операции (13 бит) R – источник(3 б) d
Код операции (16 бит) e
Код операции (8 бит) Смещение (8 бит) f
Рис.4.4. Дополнительные структуры команд  
                               

Адресация операндов

В двухадресных командах первый адрес после кода операции является адресом источника, второй адрес является адресом приемника, т.е. адресом, по которому выбирается второй операнд, и в который записывается результат операции.

Для задания полного адреса в команде предусмотрены два смежных трехбитных поля. Первое поле – это поле режима адресации, второе поле – поле РОНа, используемого для задания компоненты адреса.

Для обозначения содержимого полей в архитектуре PDP-11 используется восьмеричная система счисления.

Адресные поля команд всех структур могут быть расширены одним или двумя дополнительными словами в зависимости от используемых режимов адресации.

Команды структуры "a" и "b" – это тоже двухадресные команды, но в качестве одного из операндов используется содержимое РОНа. В команде структуры «b» второй адрес задается смещением относительно счетчика команд. Это структура команды выхода из цикла. Содержимое указанного в команде РОНа автоматически уменьшается на размер выполненной команды. Пока содержимое РОНа не равно нулю, происходит передача управления на команду по адресу, равному содержимому счетчика команд плюс удвоенное смещение (в словах), которое рассматривается как число со знаком.

Команды со структурой "с" – это одноадресные команды, операнд адресуется и в памяти и в РОНах.

Команды со структурой "d" – это одноадресные команды. Адрес задается РОНом. Это могут быть команды обработки данных из стека, в этих случаях указанный в команде РОН является указателем стека.

Команды структуры "е" – это безадресные операции.

Команды структуры "f" – это команды условной передачи управления, условие передачи управления задается кодом операции, а адрес перехода задается удвоенным смещением относительно счетчика команд. Смещение рассматривается как число со знаком.