Система команд транспьютера

Все команды транспьютера однобайтовые и выполняются за один такт процессора. Старшие 4 разряда - код команды, младшие 4 разряда используются для формирования операнда команды или кода команды в регистре операнда - О.

Операции, реализуемые командами транспьютера, подразделяются на первичные и вторичные. 13 наиболее употребительных первичных операций, такие, например, как сложение с константой со значением в диапазоне 0 - 15, безусловный переход, загрузка (запись) слова и т.п. Еще 3 команды (мнемокоды pfix, nfix, opr) используются для реализации вторичных операций. Код вторичной операции формируется командами pfix, nfix и opr в регистре О, а операнды содержатся в регистрах.

Команды выбираются из памяти транспьютера и помещаются в буфер команд центрального процессора. За один такт выбирается 2 команды в Т-414 и 4 команды в Т-800.

Выполнение большинства команд осуществляется в три этапа.

1. Операнд команды помещается в младшие 4 разряда регистра операнда - О;

2. Выполняется операция, задаваемая кодом команды. Содержимое регистра О интерпретируется как операнд.

3. Очищается регистр операнда О.

Исключение составляют команды pfix, nfix и орr.

Команда pfix на этапе 2 осуществляет сдвиг содержимого О на 4 разряда влево и не очищает регистр О на этапе 3. Команда nfix выполняется так же, как и pfix, но перед сдвигом О помещает туда арифметическое дополнение его содержимого.

Поскольку после выполнения команд pfix и nfix содержимое О не очищается, последовательность команд pfix и nfix позволяет формировать в регистре О операнды с разрядностью до 32. Требуемая последовательность команд минимальной длины формируется компилятором.

Например, операция сложения содержимого регистра А с константой 9 будет выполнено командой adc #9 (символ # обозначает, что следующее за ним число представлено в шестнадцатеричном виде), чтобы сложить с константой 21 = 1516, необходимо выполнить последовательность команд pfix #1; adc #5. Сложение с константой -31 = ffffffe116 можно выполнить последовательностью команд pfix #f; pfix #f; pfix #f; pfix #f; pfix #f; pfix #f; pfix #e; adc #1 или с использованием команды nfix:

nfix#l; ldc#l.

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

Например, для операции умножения (MUL), имеющей код f316, компилятор сформирует следующую последовательность команд: pfix #f; opr #3.

Будет полезно почитать по теме: