| |
|
Краткая система команд микроконтроллеров C16x/ST10
Краткое описание команд
Обозначения
| 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 бит) |
| 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 |
|
|