Перейти к содержанию

Система команд

Легенда

  • OP - код операции.
  • SF - суффикс (режим).
  • InsType - формат инструкции (см. форматы).
  • FlMask - маска флагов, которые изменяет инструкция (* - не изменяется).
  • Description - описание.

Полная таблица

OP SF Имя InsType FlMask Описание
00h 00h NOP S0 ******** Нет операции
01h 00h HALT S0 ******** Останов тактового генератора
02h 00h ADD A0 ***ZOS*C Сложение
02h 01h ADD.b A1 ***ZOS*C Сложение с байтовой константой
02h 02h ADD.w A2 ***ZOS*C Сложение со словом
02h 03h ADD.a A3 ***ZOS*C Сложение с адресом
03h 00h ADC A0 ***ZOS*C Сложение с переносом
04h 00h SUB A0 ***ZOSB* Вычитание
04h 01h SUB.b A1 ***ZOSB* Вычитание байта
04h 02h SUB.w A2 ***ZOSB* Вычитание слова
04h 03h SUB.a A3 ***ZOSB* Вычитание адреса
05h 00h SBB A0 ***ZOSB* Вычитание с заимствованием
06h 00h MUL A0 ***ZOS** Умножение
06h 01h MUL.b A1 ***ZOS** Умножение на байт
06h 02h MUL.w A2 ***ZOS** Умножение на слово
06h 03h MUL.a A3 ***ZOS** Умножение на адрес
07h 00h IMUL A0 ***ZOS** Знаковое умножение
07h 01h IMUL.b A1 ***ZOS** Знаковое умножение на байт
07h 02h IMUL.w A2 ***ZOS** Знаковое умножение на слово
07h 03h IMUL.a A3 ***ZOS** Знаковое умножение на адрес
08h 00h DIV A0 ***ZOS** Деление
08h 01h DIV.b A1 ***ZOS** Деление на байт
08h 02h DIV.w A2 ***ZOS** Деление на слово
08h 03h DIV.a A3 ***ZOS** Деление на адрес
09h 00h IDIV A0 ***ZOS** Знаковое деление
09h 01h IDIV.b A1 ***ZOS** Знаковое деление на байт
09h 02h IDIV.w A2 ***ZOS** Знаковое деление на слово
09h 03h IDIV.a A3 ***ZOS** Знаковое деление на адрес
0Ah 00h AND A0 ***ZOS** Логическое И
0Bh 00h OR A0 ***ZOS** Логическое ИЛИ
0Ch 00h XOR A0 ***ZOS** Исключающее ИЛИ
0Dh 00h NOT S3 ***ZOS** Побитовое НЕ
0Eh 00h INC S3 ***ZOS*C Инкремент
0Fh 00h DEC S3 ***ZOSB* Декремент
10h 00h CMP A0 LEG***** Сравнение
10h 01h CMP.b A1 LEG***** Сравнение с байтом
10h 02h CMP.w A2 LEG***** Сравнение со словом
10h 03h CMP.a A3 LEG***** Сравнение с адресом
11h 00h ICMP A0 LEG***** Знаковое сравнение
11h 01h ICMP.b A1 LEG***** Знаковое сравнение с байтом
11h 02h ICMP.w A2 LEG***** Знаковое сравнение со словом
11h 03h ICMP.a A3 LEG***** Знаковое сравнение с адресом
12h 00h JMP J0 ******** Безусловный переход
13h 00h PUSH S2 ******** Положить регистр в стек
14h 01h POP S1 ******** Взять из стека в регистр
15h 00h CALL S6 ******** Вызов подпрограммы
16h 00h RET S0 ******** Возврат из подпрограммы
17h 00h MOV D0 ******** Пересылка регистр-регистр
17h 01h LDI.b D1B ******** Загрузка байтовой константы
17h 02h LDI.w D1W ******** Загрузка слова
17h 03h LDI.a D1A ******** Загрузка адреса
18h 04h STR.b D2F ******** Запись байта (flat)
18h 05h STR.b D2S ******** Запись байта (base:offset)
18h 07h STR.b D2R ******** Запись байта (adreg)
18h 44h STR.w D2F ******** Запись слова (flat)
18h 45h STR.w D2S ******** Запись слова (base:offset)
18h 47h STR.w D2R ******** Запись слова (adreg)
18h 84h STR.a D2F ******** Запись адреса (flat)
18h 85h STR.a D2S ******** Запись адреса (base:offset)
18h 87h STR.a D2R ******** Запись адреса (adreg)
19h 08h LOD.b D3F ******** Чтение байта (flat)
19h 09h LOD.b D3S ******** Чтение байта (base:offset)
19h 0Bh LOD.b D3R ******** Чтение байта (adreg)
19h 48h LOD.w D3F ******** Чтение слова (flat)
19h 49h LOD.w D3S ******** Чтение слова (base:offset)
19h 4Bh LOD.w D3R ******** Чтение слова (adreg)
19h 88h LOD.a D3F ******** Чтение адреса (flat)
19h 89h LOD.a D3S ******** Чтение адреса (base:offset)
19h 8Bh LOD.a D3R ******** Чтение адреса (adreg)
1Ah 00h LSL A1 ***ZOS** Логический сдвиг влево
1Bh 00h LSR A1 ***ZOS** Логический сдвиг вправо
1Ch 00h ASR A1 ***ZOS** Арифметический сдвиг вправо
1Dh 00h ROL A1 ***ZOS** Циклический сдвиг влево
1Eh 00h ROR A1 ***ZOS** Циклический сдвиг вправо
1Fh 00h CLI S0 ******** Запретить прерывания
20h 00h STI S0 ******** Разрешить прерывания
21h 00h LWIM S0 ******** Блокировать запись в память инструкций
22h 00h UNLWIM S0 ******** Разблокировать запись в память инструкций
23h 00h INT S4 ******** Вызвать прерывание
24h 00h IRET S0 ******** Возврат из прерывания
25h 00h WRINT A3 ******** Записать прерывание в IV
26h 00h LOCK S1 ******** Заблокировать регистр
27h 00h UNLOCK S1 ******** Разблокировать регистр

Примечание: в некоторых инструкциях (например, POP) суффикс в таблице микрокода указан как 01h, хотя в справочнике инструкций он может отсутствовать. Это связано с тем, что суффикс определяет формат и режим, а не мнемонику.