Обозначения
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 |