В систему команд модели входят 25 инструкций:
- операции с прямой или косвенной адресацей памяти
- операции с фиксированными регистрами (включая переходы)
- операции ввода/вывода и управление прерываниями
Все инструкции кодируются 16-битным словом, причем в инструкциях, которые содержат обращение к памяти, 4 бита отводится под код операции и 12 оставшихся - под адрес.
Мнем. | Код | Действия | Комментерии |
AND ad | d000 aaaaaaaaaaaa | A <== A & (ad) |
d=0 - прямая адресация, d=1 - косвенная
aaaaaaaaaaaa - 12-битный адрес |
ADD ad | d001 aaaaaaaaaaaa | A <== A + (ad) |
устанавливает перенос |
LDA ad | d010 aaaaaaaaaaaa | A <== (ad) |
|
STA ad | d011 aaaaaaaaaaaa | (ad) <== A |
|
BUN ad | d100 aaaaaaaaaaaa | PC <== ad |
безусловный переход |
BSA ad | d101 aaaaaaaaaaaa | (ad) <== PC |
запоминание счетчика команд |
ISZ ad | d110 aaaaaaaaaaaa |
(ad) <== (ad)+1; skip if =0 |
пропустить след. инструк. если сумма=0 |
CLA | 0111 100000000000 |
A <== 0 | |
CLE | 0111 010000000000 |
C {бит переноса} <== 0 | |
CMA | 0111 001000000000 |
A <== NOT A | |
CME | 0111 000100000000 |
C <== NOT C | инвертировать бит переноса |
CIR | 0111 000010000000 |
циклич. сдвиг A вправо | через бит переноса |
CIL | 0111 000001000000 |
циклич. сдвиг A влево | через бит переноса |
INC | 0111 000000100000 |
A <== A + 1 | не влияет на бит переноса |
SPA | 0111 000000010000 |
skip if A>0 | пропустить след. инструк. если A>0 |
SNA | 0111 000000001000 |
skip if A<0 | пропустить след. инструк. если A<0 |
SZA | 0111 000000000100 |
skip if A=0 | пропустить след. инструк. если A=0 |
SZE | 0111 000000000010 |
skip if C=0 | пропустить след. инструк. если C=0 |
HLT | 0111 000000000001 |
H <== 0 | стоп |
INP | 1111 100000000000 |
A <== bus | ввод байта с шины |
OUT | 1111 010000000000 |
bus <== A | вывод байта на шину |
SCI | 1111 001000000000 |
skip if I=1 {флаг ввода} | пропустить след. инструк. если I=1 |
SCO | 1111 000100000000 |
skip if O=1 {флаг вывода} | пропустить след. инструк. если O=1 |
ION | 1111 000010000000 |
включить прерывания | |
IOF | 1111 000001000000 |
отключить прерывания | |
Стоит заметить, что модель предназначается в первую очередь для изучения аппаратной части. Это заметно и по построению системы команд: коды операций назначены так, что многие распознаются по собственному биту (подобная мера сильно облегчает дешифрацию); заметное внимание уделено командам ввода/вывода. В то же время, видимо, опять таки ради простоты аппаратной реализации, принята весьма "нетрадиционная" схема реализации условных переходов - пропуск следующей инструкции при выполнении условия, а не переход на требуемый адрес.