Команды
Требуемые условия завершения
1-байтовые команды
Обнуление регистров
| Операция | Код | Описание |
|---|---|---|
0 → R0 |
B7 |
Обнуление регистра R0 |
0 → R1 |
B8 |
Обнуление регистра R1 |
0 → R2 |
B9 |
Обнуление регистра R2 |
0 → R3 |
BA |
Обнуление регистра R3 |
0 → R4 |
BB |
Обнуление регистра R4 |
0 → R5 |
BC |
Обнуление регистра R5 |
0 → R6 |
BD |
Обнуление регистра R6 |
0 → R7 |
BE |
Обнуление регистра R7 |
0 → AC |
BF |
Обнуление аккумулятора AC |
Пересылка из регистров в аккумулятор
| Операция | Код | Описание |
|---|---|---|
R0 → AC |
A8 |
Пересылка из регистра R0 в аккумулятор |
R1 → AC |
A9 |
Пересылка из регистра R1 в аккумулятор |
R2 → AC |
AA |
Пересылка из регистра R2 в аккумулятор |
R3 → AC |
AB |
Пересылка из регистра R3 в аккумулятор |
R4 → AC |
AC |
Пересылка из регистра R4 в аккумулятор |
R5 → AC |
AD |
Пересылка из регистра R5 в аккумулятор |
R6 → AC |
AE |
Пересылка из регистра R6 в аккумулятор |
R7 → AC |
AF |
Пересылка из регистра R7 в аккумулятор |
Пересылка из аккумулятора в регистры
| Операция | Код | Описание |
|---|---|---|
AC → R0 |
5A |
Пересылка из аккумулятора в регистр R0 |
AC → R1 |
5B |
Пересылка из аккумулятора в регистр R1 |
AC → R2 |
5C |
Пересылка из аккумулятора в регистр R2 |
AC → R3 |
5D |
Пересылка из аккумулятора в регистр R3 |
AC → R4 |
5E |
Пересылка из аккумулятора в регистр R4 |
AC → R5 |
5F |
Пересылка из аккумулятора в регистр R5 |
AC → R6 |
60 |
Пересылка из аккумулятора в регистр R6 |
AC → R7 |
61 |
Пересылка из аккумулятора в регистр R7 |
Сложение регистров с аккумулятором
| Операция | Код | Описание |
|---|---|---|
R0 + AC → R0, AC |
77 |
Сложение регистра R0 с аккумулятором, результат в R0 и AC |
R1 + AC → R1, AC |
78 |
Сложение регистра R1 с аккумулятором, результат в R1 и AC |
R2 + AC → R2, AC |
79 |
Сложение регистра R2 с аккумулятором, результат в R2 и AC |
R3 + AC → R3, AC |
7A |
Сложение регистра R3 с аккумулятором, результат в R3 и AC |
R4 + AC → R4, AC |
7B |
Сложение регистра R4 с аккумулятором, результат в R4 и AC |
R5 + AC → R5, AC |
7C |
Сложение регистра R5 с аккумулятором, результат в R5 и AC |
R6 + AC → R6, AC |
7D |
Сложение регистра R6 с аккумулятором, результат в R6 и AC |
R7 + AC → R7, AC |
7E |
Сложение регистра R7 с аккумулятором, результат в R7 и AC |
AC + AC → AC |
7F |
Удвоение содержимого аккумулятора |
Специальные операции с аккумулятором
| Операция | Код | Описание |
|---|---|---|
¬AC → AC |
72 |
Инверсия |
FF → AC |
73 |
Загрузка константы FFh в аккумулятор |
Пересылка в RA с обменом памятью
| Операция | Код | Описание |
|---|---|---|
R0 → RA, M → AC |
E7 |
Пересылка R0 в RA и памяти в AC |
R1 → RA, M → AC |
E8 |
Пересылка R1 в RA и памяти в AC |
R2 → RA, M → AC |
E9 |
Пересылка R2 в RA и памяти в AC |
R3 → RA, M → AC |
EA |
Пересылка R3 в RA и памяти в AC |
R4 → RA, M → AC |
EB |
Пересылка R4 в RA и памяти в AC |
R5 → RA, M → AC |
EC |
Пересылка R5 в RA и памяти в AC |
R6 → RA, M → AC |
ED |
Пересылка R6 в RA и памяти в AC |
R7 → RA, M → AC |
EE |
Пересылка R7 в RA и памяти в AC |
Пересылка в RA и запись в память
| Операция | Код | Описание |
|---|---|---|
AC → RA, AC → M |
9D |
Пересылка AC в RA и в память |
R0 → RA, AC → M |
95 |
Пересылка R0 в RA и AC в память |
R1 → RA, AC → M |
96 |
Пересылка R1 в RA и AC в память |
R2 → RA, AC → M |
97 |
Пересылка R2 в RA и AC в память |
R3 → RA, AC → M |
98 |
Пересылка R3 в RA и AC в память |
R4 → RA, AC → M |
99 |
Пересылка R4 в RA и AC в память |
R5 → RA, AC → M |
9A |
Пересылка R5 в RA и AC в память |
R6 → RA, AC → M |
9B |
Пересылка R6 в RA и AC в память |
R7 → RA, AC → M |
9C |
Пересылка R7 в RA и AC в память |
Специальная пересылка в RC
⚠️ Примечание: Возможен конфликт кода EF с командой R7 → RA, M → AC (EE). Проверьте документацию К589.
| Операция | Код | Описание |
|---|---|---|
R0 → RC, AC → M |
EF |
Пересылка R0 в RC и AC в память (спецрежим) |
Управление программой
| Операция | Код | Описание |
|---|---|---|
MSC |
75 |
Начало музыкального текста |
END |
A0 |
Окончание программы |
RET |
A7 |
Возврат из подпрограммы |
2-байтовые команды
Сложение с непосредственным операндом
| Операция | Код | Описание |
|---|---|---|
R0 + I → R0 |
C7 |
Сложение регистра R0 с последующим байтом (операндом) |
R1 + I → R1 |
C8 |
Сложение регистра R1 с последующим байтом |
R2 + I → R2 |
C9 |
Сложение регистра R2 с последующим байтом |
R3 + I → R3 |
CA |
Сложение регистра R3 с последующим байтом |
R4 + I → R4 |
CB |
Сложение регистра R4 с последующим байтом |
R5 + I → R5 |
CC |
Сложение регистра R5 с последующим байтом |
R6 + I → R6 |
CD |
Сложение регистра R6 с последующим байтом |
R7 + I → R7 |
CE |
Сложение регистра R7 с последующим байтом |
AC + I → AC |
CF |
Сложение аккумулятора с последующим байтом |
Вычитание непосредственного операнда
| Операция | Код | Описание |
|---|---|---|
R0 - I → R0 |
66 |
Вычитание последующего байта из регистра R0 |
R1 - I → R1 |
67 |
Вычитание последующего байта из регистра R1 |
R2 - I → R2 |
68 |
Вычитание последующего байта из регистра R2 |
R3 - I → R3 |
69 |
Вычитание последующего байта из регистра R3 |
R4 - I → R4 |
6A |
Вычитание последующего байта из регистра R4 |
R5 - I → R5 |
6B |
Вычитание последующего байта из регистра R5 |
R6 - I → R6 |
6C |
Вычитание последующего байта из регистра R6 |
R7 - I → R7 |
6D |
Вычитание последующего байта из регистра R7 |
AC - I → AC |
6E |
Вычитание последующего байта из аккумулятора |
Работа с памятью и устройствами ввода-вывода
| Операция | Код | Описание |
|---|---|---|
Mn → AC |
9E |
Загрузка в аккумулятор из ячейки памяти (адрес во втором байте) |
AC → Mn |
9F |
Сохранение аккумулятора в ячейку памяти (адрес во втором байте) |
INn → AC |
4E |
Ввод в аккумулятор с внешнего устройства (адрес во втором байте) |
AC → OUTn |
A4 |
Вывод из аккумулятора на внешнее устройство (адрес во втором байте) |
Управление программой
| Операция | Код | Описание |
|---|---|---|
GOTOn |
0A |
Безусловный переход на адрес (адрес во втором байте) |
CALLn |
65 |
Вызов подпрограммы по адресу (адрес во втором байте) |
JFFn |
54 |
Условный переход по флагу (адрес во втором байте) |
3-байтовые команды
⚠️ Важно: Эти команды трёхбайтовые. Первый байт — код команды, второй — адрес при истине, третий — адрес при ложи.
Условные переходы по нулю регистров
| Операция | Код | Байт | Условие | Описание |
|---|---|---|---|---|
T Z R0 |
8A |
3 | Если R0 = 0 → A1 Если R0 ≠ 0 → A2 |
Условный переход по нулю регистра R0 |
T Z R1 |
8B |
3 | Если R1 = 0 → A1 Если R1 ≠ 0 → A2 |
Условный переход по нулю регистра R1 |
T Z R2 |
8C |
3 | Если R2 = 0 → A1 Если R2 ≠ 0 → A2 |
Условный переход по нулю регистра R2 |
T Z R3 |
8D |
3 | Если R3 = 0 → A1 Если R3 ≠ 0 → A2 |
Условный переход по нулю регистра R3 |
T Z R4 |
8E |
3 | Если R4 = 0 → A1 Если R4 ≠ 0 → A2 |
Условный переход по нулю регистра R4 |
T Z R5 |
8F |
3 | Если R5 = 0 → A1 Если R5 ≠ 0 → A2 |
Условный переход по нулю регистра R5 |
T Z R6 |
90 |
3 | Если R6 = 0 → A1 Если R6 ≠ 0 → A2 |
Условный переход по нулю регистра R6 |
T Z R7 |
91 |
3 | Если R7 = 0 → A1 Если R7 ≠ 0 → A2 |
Условный переход по нулю регистра R7 |
T Z A |
92 |
3 | Если AC = 0 → A1 Если AC ≠ 0 → A2 |
Условный переход по нулю аккумулятора |
Команда SRA (сдвиг аккумулятора + условный переход)
🔄 Описание:
- Команда трёхбайтовая
- Производится сдвиг содержимого аккумулятора вправо на 1 разряд
- Младший разряд (бит 0) ДО сдвига сохраняется как сигнал для условного перехода
- SRA0 — старший разряд (бит 7) заполняется 0 (логический сдвиг)
- SRA1 — старший разряд (бит 7) заполняется 1
- Удобно для побитовой обработки, вывода двоичного кода, умножения/деления
| Операция | Код | Байт | Условие | Описание |
|---|---|---|---|---|
SRA0 |
93 |
3 | Если AC₀ = 0 (до сдвига) → A1 Если AC₀ = 1 → A2 |
Сдвиг АС вправо, старший разряд = 0, условный переход по младшему разряду |
SRA1 |
16 |
3 | Если AC₀ = 0 (до сдвига) → A1 Если AC₀ = 1 → A2 |
Сдвиг АС вправо, старший разряд = 1, условный переход по младшему разряду |
Условные переходы по знаку (3-байтовые)
⚠️ Важно: Эти команды трёхбайтовые. Переход зависит от старшего бита (знак числа).
| Операция | Код | Байт | Условие | Описание |
|---|---|---|---|---|
A L R0 |
20 |
3 | Если R0 < 0 (старший бит = 1) → A1 Иначе → A2 |
Условный переход по знаку регистра R0 |
A L R1 |
8B 30 |
3 | Если R1 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R1 |
A L R2 |
8C 33 |
3 | Если R2 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R2 |
A L R3 |
8D 36 |
3 | Если R3 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R3 |
A L R4 |
8E 39 |
3 | Если R4 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R4 |
A L R5 |
8F 3F |
3 | Если R5 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R5 |
A L R6 |
90 44 |
3 | Если R6 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R6 |
A L R7 |
91 49 |
3 | Если R7 < 0 → A1 Иначе → A2 |
Условный переход по знаку регистра R7 |
A L A |
92 4C |
3 | Если AC < 0 → A1 Иначе → A2 |
Условный переход по знаку аккумулятора |
Последнее изменение: среда, 19 ноября 2025, 17:09