Команды

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
Самоприсвоение (эквивалент NOP)
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
20
3Если R0 = 0 → A1
Если R0 ≠ 0 → A2
Условный переход по нулю регистра R0
T Z R1
30
3Если R1 = 0 → A1
Если R1 ≠ 0 → A2
Условный переход по нулю регистра R1
T Z R2
33
3Если R2 = 0 → A1
Если R2 ≠ 0 → A2
Условный переход по нулю регистра R2
T Z R3
36
3Если R3 = 0 → A1
Если R3 ≠ 0 → A2
Условный переход по нулю регистра R3
T Z R4
39
3Если R4 = 0 → A1
Если R4 ≠ 0 → A2
Условный переход по нулю регистра R4
T Z R5
3F
3Если R5 = 0 → A1
Если R5 ≠ 0 → A2
Условный переход по нулю регистра R5
T Z R6
44
3Если R6 = 0 → A1
Если R6 ≠ 0 → A2
Условный переход по нулю регистра R6
T Z R7
49
3Если R7 = 0 → A1
Если R7 ≠ 0 → A2
Условный переход по нулю регистра R7
T Z A
4C
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
8A
3Если R0 < 0 (старший бит = 1) → A1
Иначе → A2
Условный переход по знаку регистра R0
A L R1
8B
3Если R1 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R1
A L R2
8C
3Если R2 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R2
A L R3
8D
3Если R3 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R3
A L R4
8E
3Если R4 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R4
A L R5
8F
3Если R5 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R5
A L R6
90
3Если R6 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R6
A L R7
91
3Если R7 < 0 → A1
Иначе → A2
Условный переход по знаку регистра R7
A L A
92
3Если AC < 0 → A1
Иначе → A2
Условный переход по знаку аккумулятора
Последнее изменение: Среда, 15 октября 2025, 01:30