Обозначения
| Rwi | индексные регистры (R0, R1, …, R3) |
| Rw | 2-байтовый регистр общего назначения (РОН) (R0, R1, …, R15). |
| Rb (RL0, RH0,…, RL7, RH7) | байтовый регистр РОН |
| reg | Регистры SFR или РОН (в случае байтовых операций с SFR, доступ через “reg” возможен только к младшему байту) |
| mem | прямая адресация в памяти слова или байта |
| […] | косвенная адресация в памяти слова или байта (любой 2-байтовый РОН может использоваться как косвенный указатель адреса, кроме арифметических, логических и команд сравнения, в которых разрешены только R0 — R3) |
| bitaddr | указатель бита в битадресуемом пространстве памяти |
| bitoff | указатель слова в битадресуемом пространстве памяти |
| #datax | непосредственные данные (число значащих бит, которые могут указываться пользователем, представлены соответствующим добавлением “x”) |
| #mask8 | непосредственная 8-битовая маска, используемая для изменения поля бита |
Операции умножения и деления
| MDL, MDH | регистры операндов источника и/или приемника команд умножения и деления |
| MD | 4-байтовый регистр, состоящий из регистров MDL и MDH. Обращение может производиться только через MDL и/или MDH. |
Расширенные команды
Команды EXTxx изменяют стандартную схему адресации с DPP:
| #pag10 | непосредственный 10-битовый адрес страницы |
| #seg8 | непосредственный 8-битовый адрес сегмента |
| #irang2 | количество операций, на которые распространяются условия изменения стандартной схемы адресации |
Режимы адресации команд перехода
| Caddr | непосредственный 16-битовый адрес перехода (изменяет Указатель Команд – IP) |
| Seg | непосредственный 8-битовый адрес сегмента |
| Rel | знаковое 8-битовое смещение по отношению к Указателю Команды (IP) |
| #trap7 | непосредственный 7-битовый номер программного или аппаратного прерывания |
Коды условий перехода
| сс | символически обозначенные коды условий |
| cc_UC | безусловно |
| cc_Z | если результат равен нулю |
| cc_NZ | если результат не равен нулю |
| cc_V | если произошло переполнение во время выполнения операции |
| cc_NV | если не произошло переполнения во время выполнения операции |
| cc_N | если результат отрицательный |
| cc_NN | если результат не отрицательный |
| cc_C | если произошел перенос во время выполнения операции |
| cc_NC | если не произошел перенос во время выполнения операции |
| cc_EQ | если сравниваемые операнды эквивалентны |
| cc_NE | если сравниваемые операнды не эквивалентны |
| cc_ULT | меньше (без знака) |
| cc_ULE | меньше или равно (без знака) |
| cc_UGE | больше или равно (без знака) |
| cc_UGT | больше (без знака) |
| cc_SLT | меньше (со знаком) |
| cc_SLE | меньше или равно (со знаком) |
| cc_SGE | больше или равно (со знаком) |
| cc_SGT | больше (со знаком) |
| cc_NET | не равно и не конец таблиц |
Краткое описание команд
Арифметические операции
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| ADD | Rw, Rw | 2 | Сложение регистров РОН (2 байта) |
| ADD | Rw, [Rwi ] | 2 | Сложение регистра РОН (2 байта) с содержимым ячейки памяти |
| ADD | Rw, [Rwi +] | 2 | Сложение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 |
| ADD | Rw, #data3 | 2 | Сложение регистра РОН (2 байта) с непосредственным операндом размером 3 бита |
| ADD | reg, #data16 | 2 | Сложение регистра (2 байта) с непосредственным операндом размером 16 бит |
| ADD | reg, mem | 4 | Сложение регистра (2 байта) с содержимым ячейки памяти |
| ADD | mem, reg | 4 | Сложение содержимого ячейки памяти (2 байта) с регистром |
| ADDB | Rb, Rb | 4 | Сложение регистров РОН (1 байт) |
| ADDB | Rb, [Rwi ] | 2 | Сложение регистра РОН (1 байт) с содержимым ячейки памяти |
| ADDB | Rb, [Rwi +] | 2 | Сложение регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1 |
| ADDB | Rb, #data3 | 2 | Сложение регистра РОН (1 байт) с непосредственным операндом (3 бита) |
| ADDB | reg, #data8 | 2 | Сложение регистра (1 байт) с непосредственным операндом размером (8 бит) |
| ADDB | reg, mem | 4 | Сложение регистра (1 байт) с содержимым ячейки памяти |
| ADDB | mem, reg | 4 | Сложение содержимого ячейки памяти (1 байт) с регистром |
| ADDC | Rw, Rw | 4 | Сложение регистров РОН (2 байта) с флагом переноса CF |
| ADDC | Rw, [Rwi ] | 2 | Сложение регистра РОН (2 байта) с содержимым ячейки памяти и с флагом переноса CF |
| ADDC | Rw, [Rwi +] | 2 | Сложение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 и с флагом переноса CF |
| ADDC | Rw, #data3 | 2 | Сложение регистра РОН (2 байта) с непосредственным операндом (3 бита) и с флагом переноса CF |
| ADDC | reg, #data16 | 4 | Сложение регистра (2 байта) с непосредственным операндом (16 бит) ис флагом переноса CF |
| ADDC | reg, mem | 4 | Сложение регистра (2 байта) с содержимым ячейки памяти и с флагом переноса CF |
| ADDC | mem, reg | 4 | Сложение содержимого ячейки памяти (2 байта) с регистром и с флагом переноса CF |
| ADDBC | Rb, Rb | 2 | Сложение регистра РОН (1 байт) с регистром РОН (1 байт) и флагом переноса CF |
| ADDBC | Rb, [Rw] | 2 | Сложение регистра РОН (1 байт) с содержимым ячейки памяти и с флагом переноса CF |
| ADDBC | Rb, [Rw +] | 2 | Сложение регистра РОН (1 байт) с содержимым ячейки памяти и с флагом переноса CF с последующим увеличением указателя памяти на 1 |
| ADDBC | Rb, #data3 | 2 | Сложение регистра РОН (1 байт) с непосредственным операндом (3 бита) и флагом переноса CF |
| ADDBC | reg, #data8 | 4 | Сложение регистра (1 байт) с непосредственным операндом (8 бит) и с флагом переноса CF |
| ADDBC | reg, mem | 4 | Сложение регистра (1 байт) с содержимым ячейки памяти и с флагом переноса CF |
| ADDBC | mem, reg | 4 | Сложение содержимого ячейки памяти (1 байт) с регистром и с флагом переноса CF |
| SUB | Rw, Rw | 2 | Вычитание регистров РОН (2 байта) |
| SUB | Rw, [Rw] | 2 | Вычитание из регистра РОН (2 байта) содержимого ячейки памяти |
| SUB | Rw, [Rw +] | 2 | Вычитание из регистра РОН (2 байта) содержимого ячейки памяти с последующим увеличением указателя памяти на 2 |
| SUB | Rw, #data3 | 2 | Вычитание из регистра РОН (2 байта) непосредственного операнда (3 бита) |
| SUB | reg, #data16 | 4 | Вычитание из регистра (2 байта) непосредственного операнда (16 бит) |
| SUB | reg, mem | 4 | Вычитание из регистра SFR (2 байта) содержимого ячейки памяти |
| SUB | mem, reg | 4 | Вычитание из содержимого ячейки памяти регистра (2 байта) |
| SUBB | Rb, Rb | 2 | Вычитание регистров РОН (1 байт) |
| SUBB | Rb, [Rw] | 2 | Вычитание из регистра РОН (1 байт) содержимого ячейки памяти |
| SUBB | Rb, [Rw +] | 2 | Вычитание из регистра РОН (1 байт) содержимого ячейки памяти с последующим увеличением указателя памяти на 1 |
| SUBB | Rb, #data3 | 2 | Вычитание из регистра РОН (1 байт) непосредственного операнда (3 бита) |
| SUBB | reg, #data8 | 4 | Вычитание из регистра (1 байт) непосредственного операнда (8 бит) |
| SUBB | reg, mem | 4 | Вычитание из регистра (1 байт) содержимого ячейки памяти |
| SUBB | mem, reg | 2 | Вычитание из содержимого ячейки памяти регистра (1 байт) |
| SUBC | Rw, Rw | 2 | Вычитание из регистра РОН (2 байта) регистра РОН (2 байта) и флага переноса CF |
| SUBC | Rw, [Rw] | 2 | Вычитание из регистра РОН (2 байта) содержимого ячейки памяти и флага переноса CF |
| SUBC | Rw, [Rw +] | 2 | Вычитание из регистра РОН (2 байта) содержимого ячейки памяти и флага переноса CF с последующим увеличением указателя памяти на 2 |
| SUBC | Rw, #data3 | 2 | Вычитание из регистра РОН (2 байта) непосредственного операнда (3 бита) и флага переноса CF |
| SUBC | reg, #data16 | 4 | Вычитание из регистра РОН (2 байта) непосредственного операнда (16 бит) и флага переноса CF |
| SUBC | reg, mem | 4 | Вычитание из регистра (2 байта) содержимого ячейки памяти и флага переноса CF |
| SUBC | mem, reg | 4 | Вычитание из содержимого ячейки памяти (2 байта) регистра и флага переноса CF |
| SUBCB | Rb, Rb | 2 | Вычитание из регистра РОН (1 байт) регистра РОН (1 байт) и флага переноса CF |
| SUBCB | Rb, [Rwi ] | 2 | Вычитание из регистра РОН (1 байт) содержимого ячейки памяти и флага переноса CF |
| SUBCB | Rb, [Rwi +] | 2 | Вычитание из регистра РОН (1 байт) содержимого ячейки памяти и флага переноса CF с последующим увеличением указателя памяти на 1 |
| SUBCB | Rb, #data3 | 2 | Вычитание из регистра РОН (1 байт) непосредственного операнда (3 бита) и флага переноса CF |
| SUBCB | reg, #data8 | 4 | Вычитание из регистра (1 байт) непосредственного операнда (16 бит) и флага переноса CF |
| SUBCB | reg, mem | 4 | Вычитание из регистра (1 байт) содержимого ячейки памяти и флага переноса CF |
| SUBCB | mem, reg | 4 | Вычитание из содержимого ячейки памяти (1 байт) регистра и флага переноса CF |
| MUL | Rw, Rw | 2 | Умножение регистров РОН (2 байта) со знаком |
| MULU | Rw, Rw | 2 | Умножение регистров РОН (2 байта) без знака |
| DIV | Rw | 2 | Деление регистра MDL (2 байта) на РОН (2 байта) со знаком |
| DIVL | Rw | 2 | Деление регистра MD (4 байта) на РОН (2 байта) со знаком |
| DIVLU | Rw | 2 | Деление регистра MD (4 байта) на РОН (2 байта) без знака |
| DIVU | Rw | 2 | Деление регистра MDL (2 байта) на РОН (2 байта) без знака |
| CPL | Rw | 2 | Арифметическое умножение регистра РОН (2байта) на (-1) |
| CPLB | Rb | 2 | Арифметическое умножение регистра РОН (1байт) на (-1) |
| NEG | Rw | 2 | Изменение знака в регистре РОН размером 2 байта |
| NEGB | Rb | 2 | Изменение знака в регистре РОН (1 байт) |
Логические операции
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| AND | Rw, Rw | 2 | Логическое AND регистров РОН (2 байта) |
| AND | Rw, [Rwi ] | 2 | Логическое AND регистра РОН (2 байта) с содержимым ячейки памяти |
| AND | Rw, [Rwi +] | 2 | Логическое AND регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 |
| AND | Rw, #data3 | 2 | Логическое AND регистра РОН (2 байта) с непосредственным операндом (3 бита) |
| AND | reg, #data16 | 4 | Логическое AND регистра (2 байта) с непосредственным операндом (16 бит) |
| AND | reg, mem | 4 | Логическое AND регистра (2 байта) с содержимым ячейки памяти |
| AND | mem, reg | 4 | Логическое AND содержимого ячейки памяти (2 байта) с регистром |
| ANDB | Rb, Rb | 2 | Логическое AND регистров РОН (1 байт) |
| ANDB | Rb, [Rwi ] | 2 | Логическое AND регистра РОН (1 байт) с содержимым ячейки памяти |
| ANDB | Rb, [Rwi +] | 2 | Логическое AND регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1 |
| ANDB | Rb, #data3 | 2 | Логическое AND регистра РОН (1 байт) с непосредственным операндом (3 бита) |
| ANDB | reg, #data8 | 4 | Логическое AND регистра (1 байт) с непосредственным операндом (8 бит) |
| ANDB | reg, mem | 4 | Логическое AND регистра (1 байт) с содержимым ячейки памяти |
| ANDB | mem, reg | 4 | Логическое AND содержимого ячейки памяти (1 байт) с регистром |
| OR | Rw, Rw | 2 | Логическое OR регистров РОН (2 байта) |
| OR | Rw, [Rwi ] | 2 | Логическое OR регистра РОН (2 байта) с содержимым ячейки памяти |
| OR | Rw, [Rwi +] | 2 | Логическое OR регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 |
| OR | Rw, #data3 | 2 | Логическое OR регистра РОН (2 байта) с непосредственным операндом (3 бита) |
| OR | reg, #data16 | 4 | Логическое OR регистра (2 байта) с непосредственным операндом (16 бит) |
| OR | reg, mem | 4 | Логическое OR регистра (2 байта) с содержимым ячейки памяти |
| OR | mem, reg | 4 | Логическое OR содержимого ячейки памяти (2 байта) с регистром |
| ORB | Rb, Rb | 2 | Логическое OR регистров РОН (1 байт) |
| ORB | Rb, [Rwi ] | 2 | Логическое OR регистра РОН (1 байт) с содержимым ячейки памяти |
| ORB | Rb, [Rwi +] | 2 | Логическое OR регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1 |
| ORB | Rb, #data3 | 2 | Логическое OR регистра РОН (1 байт) с непосредственным операндом (3 бита) |
| ORB | reg, #data8 | 4 | Логическое OR регистра (1 байт) с непосредственным операндом (8 бит) |
| ORB | reg, mem | 4 | Логическое OR регистра (1 байт) с содержимым ячейки памяти |
| ORB | mem, reg | 4 | Логическое OR содержимого ячейки памяти (1 байт) с регистром |
| XOR | Rw, Rw | 2 | Логическое XOR регистров РОН (2 байта) |
| XOR | Rw, [Rwi ] | 2 | Логическое XOR регистра РОН (2 байта) с содержимым ячейки памяти |
| XOR | Rw, [Rwi +] | 2 | Логическое XOR регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 |
| XOR | Rw, #data3 | 2 | Логическое XOR регистра РОН (2 байта) с непосредственным операндом (3 бита) |
| XOR | reg, #data16 | 4 | Логическое XOR регистра (2 байта) с непосредственным операндом (16 б/tdит) |
| XOR | reg, mem | 4 | Логическое XOR регистра (2 байта) с содержимым ячейки памяти |
| XOR | mem, reg | 4 | Логическое XOR содержимого ячейки памяти (2 байта) с регистром |
| XORB | Rb, Rb | 2 | Логическое XOR регистров РОН (1 байт) |
| XORB | Rb, [Rwi ] | 2 | Логическое XOR регистра РОН (1 байт) с содержимым ячейки памяти |
| XORB | Rb, [Rwi +] | 2 | Логическое XOR регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1 |
| XORB | Rb, #data3 | 2 | Логическое XOR регистра РОН (1 байт) с непосредственным операндом (3 бита) |
| XORB | reg, #data8 | 4 | Логическое XOR регистра (1 байт) с непосредственным операндом (8 бит) |
| XORB | reg, mem | 4 | Логическое XOR регистра (1 байт) с содержимым ячейки памяти |
| XORB | mem, reg | 4 | Логическое XOR содержимого ячейки памяти (1 байт) с регистром |
Логические операции с битами
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| BCLR | bitaddr | 2 | Сброс бита |
| BSET | bitaddr | 2 | Установка бита |
| BMOV | bitaddr, bitaddr | 4 | Копирование бита |
| BMOVN | bitaddr, bitaddr | 4 | Копирование бита и инвертирование второго операнда |
| BAND | bitaddr, bitaddr | 4 | Логическое AND битов |
| BOR | bitaddr, bitaddr | 4 | Логическое OR битов |
| BXOR | bitaddr, bitaddr | 4 | Логическое XOR битов |
| BCMP | bitaddr, bitaddr | 4 | Сравнение битов |
| BFLDH | bitoff, #mask8,#data8 | 4 | Побитовая модификация маскированных битов старшего байта битадресуемого слова в памяти с непосредственным операндом |
| BFLDL | bitoff, #mask8, #data8 | 4 | Побитовая модификация маскированных битов младшего байта битадресуемого слова в памяти с непосредственным операндом |
Команды сравнения и управления циклом
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| CMP | Rw, Rw | 2 | Сравнение регистров РОН (2 байта) |
| CMP | Rw, [Rwi ] | 2 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти |
| CMP | Rw, [Rwi +] | 2 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 |
| CMP | Rw, #data3 | 2 | Сравнение регистра РОН (2 байта) с непосредственным операндом (3 бита) |
| CMP | reg, #data16 | 4 | Сравнение регистра РОН (2 байта) с непосредственным операндом (16 бит) |
| CMP | reg, mem | 4 | Сравнение регистра SFR (2 байта) с содержимым ячейки памяти |
| CMPB | Rb, Rb | 2 | Сравнение регистров РОН (1 байт) |
| CMPB | Rb, [Rwi ] | 2 | Сравнение регистра РОН (1 байт) с содержимым ячейки памяти |
| CMPB | Rb, [Rwi +] | 2 | Сравнение регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1 |
| CMPB | Rb, #data3 | 2 | Сравнение регистра РОН (1 байт) с непосредственным операндом (3 бита) |
| CMPB | reg, #data8 | 4 | Сравнение регистра РОН (1 байт) с непосредственным операндом (8 бит) |
| CMPB | reg, mem | 4 | Сравнение регистра SFR (1 байт) с содержимым ячейки памяти |
| CMPD1 | Rw, #data4 | 2 | Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим уменьшением значения РОН на 1 |
| CMPD1 | Rw, #data16 | 4 | Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим уменьшением значения РОН на 1 |
| CMPD1 | Rw, mem | 4 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим уменьшением значения РОН на 1 |
| CMPD2 | Rw, #data4 | 2 | Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим уменьшением значения РОН на 2 |
| CMPD2 | Rw, #data16 | 4 | Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим уменьшением значения РОН на 2 |
| CMPD2 | Rw, mem | 4 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим уменьшением значения РОН на 2 |
| CMPI1 | Rw, #data4 | 2 | Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим увеличением значения РОН на 1 |
| CMPI1 | Rw, #data16 | 4 | Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим увеличением значения РОН на 1 |
| CMPI1 | Rw, mem | 4 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением значения РОН на 1 |
| CMPI2 | Rw, #data4 | 2 | Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим увеличением значения РОН на 2 |
| CMPI2 | Rw, #data16 | 4 | Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим увеличением значения РОН на 2 |
| CMPI2 | Rw, mem | 4 | Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением значения РОН на 2 |
Команды сдвига
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| SHL | Rw, Rw | 2 | Логический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН |
| SHL | Rw, #data4 | 2 | Логически сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита) |
| SHR | Rw, Rw | 2 | Логический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН |
| SHR | Rw, #data4 | 2 | Логический сдвиг вправо содержимого регистра РОН (2 байта) на на количество разрядов, указанное в непосредственном операнде (4 бита) |
| ROL | Rw, Rw | 2 | Циклический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН |
| ROL | Rw, #data4 | 2 | Циклический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита) |
| ROR | Rw, Rw | 2 | Циклический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН |
| ROR | Rw, #data4 | 2 | Циклический сдвиг вправо содержимым регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита) |
| ASHR | Rw, Rw | 2 | Арифметический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН |
| ASHR | Rw, #data4 | 2 | Арифметический сдвиг вправо содержимым регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита) |
Пересылка данных
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| MOV | Rw, Rw | 2 | Копирование в регистр РОН (2 байта) содержимого регистра РОН (2 байта) |
| MOV | Rw, #data4 | 2 | Копирование в регистр РОН (2 байта) непосредственного значения (4 бита) |
| MOV | reg, #data16 | 4 | Копирование в регистр (2 байта) непосредственного значения (16 бит) |
| MOV | Rw, [Rw] | 2 | Копирование в регистр РОН (2 байта) содержимого ячейки памяти |
| MOV | Rw, [Rw +] | 2 | Копирование в регистр РОН (2 байта) содержимого ячейки памяти с последующим увеличением указателя памяти на 2 |
| MOV | [Rw], Rw | 2 | Копирование в ячейку памяти содержимого регистра РОН (2 байта) |
| MOV | [-Rw], Rw | 2 | Копирование в ячейку памяти содержимого регистра РОН (2 байта) с последующим уменьшением указателя памяти на 2 |
| MOV | [Rw], [Rw] | 2 | Копирование в ячейку памяти (2 байта) содержимого ячейки памяти (2 байта) |
| MOV | [Rw +], [Rw] | 2 | Копирование в ячейку памяти (2 байта) содержимого ячейки памяти (2 байта) с последующим увеличением указателя памяти на 2 |
| MOV | [Rw], [Rw +] | 2 | Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта) с последующим увеличением указателя памяти на 2 |
| MOV | Rw,[Rw+#data16] | 4 | Копирование в регистр РОН (2 байта) содержимого ячейки памяти (2 байта) |
| MOV | [Rw +#data16],Rw | 4 | Копирование в ячейку памяти содержимого регистра РОН (2 байта) |
| MOV | [Rw], mem | 4 | Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта) |
| MOV | mem, [Rw] | 4 | Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта) |
| MOV | reg, mem | 4 | Копирование в регистр (2 байта) содержимого ячейки памяти (2 байта) |
| MOV | mem, reg | 4 | Копирование в ячейку памяти значения регистра (2 байта) |
| MOVB | Rb, Rb | 2 | Копирование в регистр РОН (1 байт) значения регистра РОН (1 байт) |
| MOVB | Rb, #data4 | 2 | Копирование в регистр РОН (1 байт) непосредственного значения (4 бита) |
| MOVB | reg, #data8 | 4 | Копирование в регистр (1 байт) непосредственного значения (8 бит) |
| MOVB | Rb, [Rw] | 2 | Копирование в регистр РОН (1 байт) содержимого ячейки памяти |
| MOVB | Rb, [Rw +] | 2 | Копирование в регистр РОН (1 байт) содержимого ячейки памяти с последующим увеличением указателя памяти на 1 |
| MOVB | [Rw], Rb | 2 | Копирование в ячейку памяти содержимого регистра РОН (1 байт) |
| MOVB | [-Rw], Rb | 2 | Копирование в ячейку памяти содержимого регистра РОН (1 байт) с последующим уменьшением указателя памяти на 1 |
| MOVB | [Rw], [Rw] | 2 | Копирование в ячейку памяти содержимого ячейки памяти (1 байт) |
| MOVB | [Rw +], [Rw] | 2 | Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) с последующим увеличением указателя памяти на 1 |
| MOVB | [Rw], [Rw +] | 2 | Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) с последующим увеличением указателя памяти на 1 |
| MOVB | Rb,[Rw+#data16] | 4 | Копирование в регистр РОН (1 байт) содержимого ячейки памяти (1 байт) |
| MOVB | [Rw +#data16],Rb | 4 | Копирование в ячейку памяти (1 байт) значения регистра РОН (1 байт) |
| MOVB | [Rw], mem | 4 | Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) |
| MOVB | mem, [Rw] | 4 | Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) |
| MOVB | reg, mem | 4 | Копирование в регистр (1 байт) содержимого ячейки памяти (1 байт) |
| MOVB | mem, reg | 4 | Копирование в ячейку памяти (1 байт) значения регистра (1 байт) |
| MOVBS | Rw, Rb | 2 | Копирование в регистр РОН (2 байта) значения регистра РОН (1 байт) со знаковым расширением |
| MOVBS | reg, mem | 4 | Копирование в регистр (2 байта) содержимого ячейки памяти (1 байт) со знаковым расширением |
| MOVBS | mem, reg | 4 | Копирование в ячейку памяти (2 байта) содержимого регистра (1 байт) со знаковым расширением |
| MOVBZ | Rw, Rb | 2 | Копирование в регистр РОН (2 байт) значения регистра РОН (1 байта) с расширением нулями |
| MOVBZ | reg, mem | 4 | Копирование в регистр (2 байта) содержимого ячейки памяти (1 байт) с расширением нулями |
| MOVBZ | mem, reg | 4 | Копирование в ячейку памяти (2 байта) значения регистра РОН (1 байт) с расширением нулями |
Операции перехода и вызова
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| JMPA | cc, caddr | 4 | Абсолютный переход по условию |
| JMPI | cc, [Rw] | 2 | Условный переход по адресу, находящемуся в регистре РОН |
| JMPR | cc, rel | 2 | Условный переход по смещению относительно данной инструкции |
| JMPS | seg, caddr | 4 | Межсегментный переход |
| JB | bitaddr, rel | 4 | Переход относительно данной инструкции, если бит установлен |
| JBC | bitaddr, rel | 4 | Переход относительно данной инструкции и сброс бита, если бит установлен |
| JNB | bitaddr, rel | 4 | Переход относительно данной инструкции, если бит сброшен |
| JNBS | bitaddr, rel | 4 | Переход относительно данной инструкции и установка бита, если бит сброшен |
| CALLA | cc, caddr | 2 | Вызов подпрограммы по условию |
| CALLI | cc, [Rw] | 2 | Вызов подпрограммы по условию, адрес подпрограммы — в регистре РОН |
| CALLR | rel | 2 | Безусловный вызов подпрограммы по смещению относительно данной инструкции |
| CALLS | seg, caddr | 4 | Межсегментный вызов подпрограммы |
| PCALL | reg, caddr | 4 | Выгрузить на стек значение регистра и перейти к подпрограмме |
| TRAP | #trap7 | 4 | Вызов подпрограммы прерывания |
Операции возврата
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| RET | 2 | Возврат из подпрограммы | |
| RETS | 2 | Возврат из подпрограммы по межсегментному вызову | |
| RETP | reg | 2 | Возврат из подпрограммы и запись в регистр значения, снятого со стека |
| RETI | 2 | Возврат из прерывания |
Операции с системным стеком
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| POP | reg | 2 | Снять значение со стека и поместить в регистр |
| PUSH | reg | 2 | Выгрузить на стек значение регистра |
| SCXT | reg, #data16 | 4 | Выгрузить на стек значение регистра и загрузить в регистр непосредственное значение (16 бит) |
| SCXT | reg, mem | 4 | Выгрузить на стек значение регистра и загрузить в регистр значение из ячейки памяти |
Управление системой
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| SRST | 4 | Программный сброс контроллера | |
| IDLE | 4 | Режим пониженного энергопотребления микроконтроллера, при котором работает его внутренняя периферия | |
| PWRDN | 4 | Полная остановка микроконтроллера, в том числе внутренней периферии | |
| SRVWDT | 4 | Сброс Watchdog таймера | |
| DISWDT | 4 | Запрещение работы Watchdog таймера | |
| EINIT | 4 | Конец инициализации |
Команда нормализации
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| PRIOR | Rw, Rw | 2 | Возвращает номер первого установленного бита |
Вспомогательные операции
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| NOP | 2 | Пустая операция |
Расширенные команды
(не поддерживаются микроконтроллерами серии 8xС166)
| Мнемокод команды | Операнды | Размер | Описание команды |
|---|---|---|---|
| ATOMIC | #irang2 | 2 | Запрещение PEC-прерываний и прерываний класса А на количество инструкций, указанных в операнде |
| EXTR | #irang2 | 2 | Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо регистров SFR к регистрам ESFR на количество инструкций, указанных в операнде |
| EXTP | Rw, #irang2 | 2 | Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к странице, указанной в первом операнде, на количество инструкций, указанных во втором операнде |
| EXTP | #pag10, #irang2 | 4 | Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к странице, указанной в первом операнде, на количество инструкций, указанных во втором операнде |
| EXTPR | Rw, #data2 | 2 | Объединение возможностей инструкций EXTP и EXTR |
| EXTPR | #pag10, #irang2 | 4 | Объединение возможностей инструкций EXTP и EXTR |
| EXTS | Rw, #irang2 | 2 | Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к сегменту, указанному в первом операнде, на количество инструкций, указанных во втором операнде |
| EXTS | #seg8, #irang2 | 4 | Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к сегменту, указанному в первом операнде, на количество инструкций, указанных во втором операнде |
| EXTSR | Rw, #irang2 | 2 | Объединение возможностей инструкций EXTS и EXTR |
| EXTSR | #seg8, #irang2 | 4 | Объединение возможностей инструкций EXTS и EXTR |










