====== Команды ассемблера "Тесей" ====== ===== Двухоперандные команды ===== | mov %dst, %src | Пересылка | | cmp %dst, %src | Сравнение | | add %dst, %src | Сложение | | sub %dst, %src | Вычитание | | and %dst, %src | Логическое И | | or %dst, %src | Логическое ИЛИ | | xor %dst, %src | Исключающее ИЛИ | ===== Однооперандные команды ===== | swap %dst | Обмен тетрад | | neg %dst | Смена знака | | not %dst | Инверсия всех разрядов | | shl %dst | Логический сдвиг влево | | shr %dst | Логический сдвиг вправо | | shra %dst | Арифметический сдвиг вправо | | rlc %dst | Циклический сдвиг влево | | rrc %dst | Циклический сдвиг вправо | | adc %dst | Прибавление бита переноса | | sbc %dst | Вычитание бита переноса | | clr %dst | Обнуление | | inc %dst | Увеличение на 1 | | dec %dst | Уменьшение на 1 | ===== Литерные команды ===== | movl %dst, const8 | Пересылка литеры | | mdah %dst, addr | Загрузка старшего байта байтного адреса команд | | mdal %dst, addr | Загрузка младшего байта байтного адреса команд | | miah %dst, addr | Загрузка старшего байта словного адреса команд | | mial %dst, addr | Загрузка младшего байта словного адреса команд | | cmpl %src, const8 | Сравнение с литерой | | addl %dst, const5 | Сложение с литерой | | subl %dst, const5 | Вычитание литеры | | bicl %dst, const4 | Сброс разрядов | | bich %dst, const4 | Сброс разрядов | | bisl %dst, const4 | Установка разрядов | | bish %dst, const4 | Установка разрядов | | btgl %dst, const4 | Инверсия разрядов | | btgh %dst, const4 | Инверсия разрядов | | bttl %src, const4 | Проверка разрядов | | btth %src, const4 | Проверка разрядов | ===== Команды работы со служебными регистрами ===== | ldr #sreg, const8 | Загрузка служебных регистров | | ldah #sreg, addr | Загрузка старшего байта байтного адреса команд | | ldal #sreg, addr | Загрузка младшего байта байтного адреса команд | | liah #sreg, addr | Загрузка старшего байта словного адреса команд | | lial #sreg, addr | Загрузка младшего байта словного адреса команд | | mtpr #sreg, %src | Запись в служебные регистры | | mfpr %dst, #sreg | Чтение служебных регистров | | push #sreg | Запись в стек данных | | pop #sreg | Чтение из стека данных | ===== Команды работы с регистром состояния ===== | sst const4 | Установка разрядов регистра состояния | | stc | Установка признака С | | stie | Разрешение прерываний | | stn | Установка признака N | | stz | Установка признака Z | | cst const4 | Сброс разрядов регистра состояния | | clc | Сброс признака C | | clie | Запрет прерываний | | cln | Сброс признака N | | clz | Сброс признака Z | | tof | Проверка переполнения | | tdc | Проверка тетрадного переноса | ===== Команды передачи управления ===== | jmp addr10 | Безусловный переход | | jsr addr10 | Переход к подпрограмме | | jnz addr10 | Переход по Z = 0 (не равно) | | jne addr10 | -- / / -- | | jz addr10 | Переход по Z = 1 (равно) | | jeq addr10 | -- / / -- | | jns addr10 | Переход по S = 0 (плюс) | | js addr10 | Переход по S = 1 (минус) | | jnc addr10 | Переход по C = 0 | | jae addr10 | -- / / -- | | jc addr10 | Переход по C = 1 | | jb addr10 | -- / / -- | | ijmp | Косвенный переход | | ijsr | Косвенный переход к подпрограмме | | rts | Возврат из подпрограммы | | rtsc const1 | Возврат из подпрограммы с битом С | | rti | Возврат из прерывания | ===== Специальные команды ===== | nop | Нет операции | | wait | Ожидание | | slp | Останов | | rst | Сброс | | sksp | Прогон стека команд |