Команды
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