Битовая маска |
Код |
Op1 |
Op2 |
Описание |
Прерывания |
---|
0 000 000 000 000 000 | HALT | | | Вызов прерывания по адресу 4 |
---|
0 000 000 000 000 001 | WAIT | | | Остановить процессор до следующего прерывания |
---|
0 000 000 000 000 010 | RTI | | | Возврат из прерывания |
---|
0 000 000 000 000 101 | RESET | | | Пересброс процессора |
---|
0 000 000 000 000 110 | RTT | | | Возврат из отладочного прерывания |
---|
0 000 000 000 000 011 | BPT | | | Вызов прерывания 12 |
---|
0 000 000 000 000 100 | IOT | | | Вызов прерывания 16 |
---|
1 000 100 0xx xxx xxx | EMT | x | | Вызов прерывания 24 |
---|
1 000 100 1xx xxx xxx | TRAP | x | | Вызов прерывания 34 |
---|
Управляющие |
---|
0 000 000 001 ddd ddd | JMP | d | | Переход по эффективному адресу |
---|
0 000 000 010 000 rrr | RTS | r | | Возврат из процедуры, адрес хранится в регистре |
---|
0 000 000 010 10c ccc | CCC | c | | Сбросить флаг или группу флагов, указанную в `cccc` |
---|
0 000 000 010 11c ccc | SCC | c | | Установить флаг или группу |
---|
0 000 000 011 ddd ddd | SWAB | d | | Перестановка байтов в слове местами |
---|
0 000 100 rrr ddd ddd | JSR | r | d | Вызов подпрограммы, запомнить адрес возврата в регистр |
---|
Условные переходы |
---|
0 000 000 1bb bbb bbb | BR | b | | Безусловный переход по диапазону -256,254..252,254 |
---|
0 000 001 0bb bbb bbb | BNE | b | | Переход, если Z=0 |
---|
0 000 001 1bb bbb bbb | BEQ | b | | Переход, если Z=1 |
---|
0 000 010 0bb bbb bbb | BGE | b | | Переход, если N=V |
---|
0 000 010 1bb bbb bbb | BLT | b | | Переход, если N<>V |
---|
0 000 011 0bb bbb bbb | BGT | b | | Переход, если N=V и Z=0 |
---|
0 000 011 1bb bbb bbb | BLE | b | | Переход, если N<>V или Z=1 |
---|
1 000 000 0bb bbb bbb | BPL | b | | Переход, если N=0 |
---|
1 000 000 1bb bbb bbb | BMI | b | | Переход, если N=1 |
---|
1 000 001 0bb bbb bbb | BHI | b | | Переход, если C=0 и Z=0 |
---|
1 000 001 1bb bbb bbb | BLOS | b | | Переход, если C=1 или Z=1 |
---|
1 000 010 0bb bbb bbb | BVC | b | | Переход, если V=0 |
---|
1 000 010 1bb bbb bbb | BVS | b | | Переход, если V=1 |
---|
1 000 011 0bb bbb bbb | BCC | b | | Переход, если C=0 |
---|
1 000 011 1bb bbb bbb | BCS | b | | Переход, если C=1 |
---|
Арифметика (слова) |
---|
* 000 101 000 ddd ddd | CLR(B) | d | | Обнулить операнд. Если *=1 то операнд будет байтом |
---|
* 000 101 001 ddd ddd | COM(B) | d | | Инвертировать биты в операнде (^FF или ^FFFF) |
---|
* 000 101 010 ddd ddd | INC(B) | d | | Увеличить +1 |
---|
* 000 101 011 ddd ddd | DEC(B) | d | | Уменьшить -1 |
---|
* 000 101 100 ddd ddd | NEG(B) | d | | Изменить знак операнда, op=-op |
---|
* 000 101 101 ddd ddd | ADC(B) | d | | Добавить к операнду флаг C |
---|
* 000 101 110 ddd ddd | SBC(B) | d | | Вычесть из операнда флаг C |
---|
* 000 101 111 ddd ddd | TST(B) | d | | Тестирование операнда и установка флагов Z,N; флаги V,C сбрасываются в 0 |
---|
Сдвиг (слова) |
---|
* 000 110 000 ddd ddd | ROR(B) | d | | Циклический сдвиг вправо |
---|
* 000 110 001 ddd ddd | ROL(B) | d | | Циклический сдвиг влево |
---|
* 000 110 010 ddd ddd | ASR(B) | d | | Арифметически сдвиг вправо, в бите 14(6) появляется бит 15(7) |
---|
* 000 110 011 ddd ddd | ASL(B) | d | | Арифметически сдвиг влево |
---|
Специальная арифметика |
---|
0 111 100 rrr ddd ddd | XOR | r | d | Исключающее ИЛИ с регистром R(приемник) и D |
---|
0 111 111 rrr nnn nnn | SOB | r | n | Уменьшение R-- и если не 0, то переход на N назад |
---|
Перемещения и логика (слова) |
---|
* 001 sss sss ddd ddd | MOV(B) | s | d | Переместить байт или слово из D в S |
---|
* 010 sss sss ddd ddd | CMP(B) | s | d | Сравнить S и D через вычитание |
---|
* 011 sss sss ddd ddd | BIT(B) | s | d | Проверка разряда номера S в операнде D через логическое умножение |
---|
* 100 sss sss ddd ddd | BIC(B) | s | d | Сброс разряда, указанного в S в операнде D, побитово |
---|
* 101 sss sss ddd ddd | BIS(B) | s | d | Установка разряда, указанного в S в операнде D, побитово |
---|
0 110 sss sss ddd ddd | ADD | s | d | Сложение S+D и сохранение в D |
---|
1 110 sss sss ddd ddd | SUB | s | d | Вычитание S-D и сохранение в D |
---|
Разное |
---|
0 000 110 100 ddd ddd | MARK | d | | При возврате из подпрограммы производится очистка стека от параметров, переданных подпрограмме |
---|
0 000 110 111 ddd ddd | SXT | d | | Расширение знака, если N=1, то операнд становится $FFFF, иначе $0000 |
---|
1 000 110 100 ddd ddd | MTPS | d | | Загрузка нового значения в PSW из операнда D |
---|
1 000 110 111 ddd ddd | MFPS | d | | Загрузка в операнд D значения PSW |
---|