Node:Структура инструкции, Next:, Previous:Набор инструкций MIX, Up:Набор инструкций MIX



Структура инструкции

Инструкции MIX кодируются словами со следующей структурой полей:

Поле fspec Описание
ADDRESS (0:2) Первые два байта и знак являются полем адреса. Вместе с полем INDEX они обозначают используемый инструкцией адрес памяти.
INDEX (3:3) Третий байт - индекс, обычно используемый для модификации адреса1.
MOD (4:4) Четвёртый байт используется либо как модификатор кода операции, либо как спецификация поля.
OPCODE (5:5) Последний (младший) байт слова определяет код операции.

или, графически,

 ------------------------------------------------
|   0   |   1   |   2   |   3   |   4   |   5    |
 ------------------------------------------------
|        ADDRESS        | INDEX |  MOD  | OPCODE |
 ------------------------------------------------

Для каждой инструкции M обозначает адрес памяти, получаемый после модификации поля ADDRESS байтом INDEX, а V - содержимое описываемого байтом MOD поля ячейки памяти с адресом M. Например, предположим, что содержимое регистров и ячеек памяти MIX таково:

[rI2] = + 00 63
[31] = - 10 11 00 11 22

где [n] обозначает содержимое n-й ячейки памяти, а [rI2] - содержимое регистра rI22. Рассмотрим двоичную инструкцию I = - 00 32 02 11 10. Для этой инструкции:

ADDRESS = - 00 32 = -32
INDEX = 02 = 2
MOD = 11 = (1:3)
OPCODE = 10

M = ADDRESS + [rI2] = -32 + 63 = 31
V = [M](MOD) = (- 10 11 00 11 22)(1:3) = + 00 00 10 11 00

Обратите внимание, при вычислении V, используя слово и спецификацию поля, мы применяем к выбранным MOD байтам левое заполнение, чтобы получить в качестве результата целое слово.

В следующих подразделах мы присвои каждой инструкции MIX мнемонику или символическое имя. Например, мнемоникой инструкции с OPCODE 10 будет LD2. Таким образом, вышеприведённую инструкцию можно переписать:

LD2  -32,2(1:3)

а в общем случае:

MNEMONIC  ADDRESS,INDEX(MOD)

Некоторые инструкции идентифицируются и полем OPCODE, и полем MOD. В этих случаях в символическом представлении MOD будет отсутствовать. Если ADDRESS или INDEX равны нулю, они также могут быть опущены. Наконец, значение MOD по умолчанию составляет (0:5) (означающее всё слово).


Footnotes

  1. Реальный адрес памяти, на который ссылается инструкция, получается добавлением к ADDRESS значения регистра rI, на который ссылается INDEX.

  2. В общем случае, [X] будет обозначать содержимое сущности X. Так, по определению, V = [M](MOD).


Node:Команды ввода/вывода, Next:, Previous:Команды перехода, Up:Набор инструкций MIX



Команды ввода/вывода

Как объясняется в предыдущих разделах (see Архитектура MIX), компьютер MIX может взаимодействовать с большим количеством блочных устройств. Для этого в вашем распоряжении имеются следующие инструкции:

IN
Пересылает блок слов с указанного устройства в память, начиная с адреса M. OPCODE = 36, MOD = номер устройства.
OUT
Пересылает блок слов из памяти (начиная с адреса M) на указанное устройство. OPCODE = 37, MOD = номер устройства.
IOC
Выполняет управляющую команду (заданную M) к указанному устройству. OPCODE = 35, MOD = номер устройства.
JRED
Выполнить переход по адресу M, если указанное устройство готово к работе. OPCODE = 38, MOD = номер устройства.
JBUS
Выполнить переход по адресу M, если заданное устройство занято. OPCODE = 34, MOD = номер устройства.

Во всех вышеперечисленных инструкциях значение MOD должно быть в диапазоне 0-20, поскольку оно обозначает целевое устройство операции. Инструкция IOC имеет смысл только для ленточных устройств (MOD = 0-7 или 20): она сдвигает маркер чтения/записи на число слов, заданное M (если оно равно нулю, лента перематывается на начало)1.


Footnotes

  1. В оригинальном определении Кнута доступны и другие управляющие операции, но при реализации блочных устройств дисковыми файлами, как это сделано в эмуляторе MDK, они не имеют смысла. По тем же причинам устройства MDK всегда готовы к работе, поскольку все операции ввода/вывода производятся посредством синхронных системных вызовов.


Node:Инструкции и команды, Previous:Указатель понятий, Up:Top



Инструкции и команды

Short Contents

Table of Contents