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