Краткая система команд C16x/ST10

Обозначения

Rwiиндексные регистры (R0, R1, …, R3)
Rw2-байтовый регистр общего назначения (РОН) (R0, R1, …, R15).
Rb
(RL0, RH0,…, RL7, RH7)
байтовый регистр РОН
regРегистры SFR или РОН (в случае байтовых операций с SFR, доступ через “reg” возможен только к младшему байту)
memпрямая адресация в памяти слова или байта
[…]косвенная адресация в памяти слова или байта (любой 2-байтовый РОН может использоваться как косвенный указатель адреса, кроме арифметических, логических и команд сравнения, в которых разрешены только R0 — R3)
bitaddrуказатель бита в битадресуемом пространстве памяти
bitoffуказатель слова в битадресуемом пространстве памяти
#dataxнепосредственные данные (число значащих бит, которые могут указываться пользователем, представлены соответствующим добавлением “x”)
#mask8непосредственная 8-битовая маска, используемая для изменения поля бита
Операции умножения и деления
MDL, MDHрегистры операндов источника и/или приемника команд умножения и деления
MD4-байтовый регистр, состоящий из регистров 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не равно и не конец таблиц

Краткое описание команд

Арифметические операции

Мнемокод командыОперандыРазмерОписание команды
ADDRw, Rw2Сложение регистров РОН (2 байта)
ADDRw, [Rwi ]2Сложение регистра РОН (2 байта) с содержимым ячейки памяти
ADDRw, [Rwi +]2Сложение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2
ADDRw, #data32Сложение регистра РОН (2 байта) с непосредственным операндом размером 3 бита
ADDreg, #data162Сложение регистра (2 байта) с непосредственным операндом размером 16 бит
ADDreg, mem4Сложение регистра (2 байта) с содержимым ячейки памяти
ADDmem, reg4Сложение содержимого ячейки памяти (2 байта) с регистром
ADDBRb, Rb4Сложение регистров РОН (1 байт)
ADDBRb, [Rwi ]2Сложение регистра РОН (1 байт) с содержимым ячейки памяти
ADDBRb, [Rwi +]2Сложение регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1
ADDBRb, #data32Сложение регистра РОН (1 байт) с непосредственным операндом (3 бита)
ADDBreg, #data82Сложение регистра (1 байт) с непосредственным операндом размером (8 бит)
ADDBreg, mem4Сложение регистра (1 байт) с содержимым ячейки памяти
ADDBmem, reg4Сложение содержимого ячейки памяти (1 байт) с регистром
ADDCRw, Rw4Сложение регистров РОН (2 байта) с флагом переноса CF
ADDCRw, [Rwi ]2Сложение регистра РОН (2 байта) с содержимым ячейки памяти и с флагом переноса CF
ADDCRw, [Rwi +]2Сложение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2 и с флагом переноса CF
ADDCRw, #data32Сложение регистра РОН (2 байта) с непосредственным операндом (3 бита) и с флагом переноса CF
ADDCreg, #data164Сложение регистра (2 байта) с непосредственным операндом (16 бит) ис флагом переноса CF
ADDCreg, mem4Сложение регистра (2 байта) с содержимым ячейки памяти и с флагом переноса CF
ADDCmem, reg4Сложение содержимого ячейки памяти (2 байта) с регистром и с флагом переноса CF
ADDBCRb, Rb2Сложение регистра РОН (1 байт) с регистром РОН (1 байт) и флагом переноса CF
ADDBCRb, [Rw]2Сложение регистра РОН (1 байт) с содержимым ячейки памяти и с флагом переноса CF
ADDBCRb, [Rw +]2Сложение регистра РОН (1 байт) с содержимым ячейки памяти и с флагом переноса CF с последующим увеличением указателя памяти на 1
ADDBCRb, #data32Сложение регистра РОН (1 байт) с непосредственным операндом (3 бита) и флагом переноса CF
ADDBCreg, #data84Сложение регистра (1 байт) с непосредственным операндом (8 бит) и с флагом переноса CF
ADDBCreg, mem4Сложение регистра (1 байт) с содержимым ячейки памяти и с флагом переноса CF
ADDBCmem, reg4Сложение содержимого ячейки памяти (1 байт) с регистром и с флагом переноса CF
SUBRw, Rw2Вычитание регистров РОН (2 байта)
SUBRw, [Rw]2Вычитание из регистра РОН (2 байта) содержимого ячейки памяти
SUBRw, [Rw +]2Вычитание из регистра РОН (2 байта) содержимого ячейки памяти с последующим увеличением указателя памяти на 2
SUBRw, #data32Вычитание из регистра РОН (2 байта) непосредственного операнда (3 бита)
SUBreg, #data164Вычитание из регистра (2 байта) непосредственного операнда (16 бит)
SUBreg, mem4Вычитание из регистра SFR (2 байта) содержимого ячейки памяти
SUBmem, reg4Вычитание из содержимого ячейки памяти регистра (2 байта)
SUBBRb, Rb2Вычитание регистров РОН (1 байт)
SUBBRb, [Rw]2Вычитание из регистра РОН (1 байт) содержимого ячейки памяти
SUBBRb, [Rw +]2Вычитание из регистра РОН (1 байт) содержимого ячейки памяти с последующим увеличением указателя памяти на 1
SUBBRb, #data32Вычитание из регистра РОН (1 байт) непосредственного операнда (3 бита)
SUBBreg, #data84Вычитание из регистра (1 байт) непосредственного операнда (8 бит)
SUBBreg, mem4Вычитание из регистра (1 байт) содержимого ячейки памяти
SUBBmem, reg2Вычитание из содержимого ячейки памяти регистра (1 байт)
SUBCRw, Rw2Вычитание из регистра РОН (2 байта) регистра РОН (2 байта) и флага переноса CF
SUBCRw, [Rw]2Вычитание из регистра РОН (2 байта) содержимого ячейки памяти и флага переноса CF
SUBCRw, [Rw +]2Вычитание из регистра РОН (2 байта) содержимого ячейки памяти и флага переноса CF с последующим увеличением указателя памяти на 2
SUBCRw, #data32Вычитание из регистра РОН (2 байта) непосредственного операнда (3 бита) и флага переноса CF
SUBCreg, #data164Вычитание из регистра РОН (2 байта) непосредственного операнда (16 бит) и флага переноса CF
SUBCreg, mem4Вычитание из регистра (2 байта) содержимого ячейки памяти и флага переноса CF
SUBCmem, reg4Вычитание из содержимого ячейки памяти (2 байта) регистра и флага переноса CF
SUBCBRb, Rb2Вычитание из регистра РОН (1 байт) регистра РОН (1 байт) и флага переноса CF
SUBCBRb, [Rwi ]2Вычитание из регистра РОН (1 байт) содержимого ячейки памяти и флага переноса CF
SUBCBRb, [Rwi +]2Вычитание из регистра РОН (1 байт) содержимого ячейки памяти и флага переноса CF с последующим увеличением указателя памяти на 1
SUBCBRb, #data32Вычитание из регистра РОН (1 байт) непосредственного операнда (3 бита) и флага переноса CF
SUBCBreg, #data84Вычитание из регистра (1 байт) непосредственного операнда (16 бит) и флага переноса CF
SUBCBreg, mem4Вычитание из регистра (1 байт) содержимого ячейки памяти и флага переноса CF
SUBCBmem, reg4Вычитание из содержимого ячейки памяти (1 байт) регистра и флага переноса CF
MULRw, Rw2Умножение регистров РОН (2 байта) со знаком
MULURw, Rw2Умножение регистров РОН (2 байта) без знака
DIVRw2Деление регистра MDL (2 байта) на РОН (2 байта) со знаком
DIVLRw2Деление регистра MD (4 байта) на РОН (2 байта) со знаком
DIVLURw2Деление регистра MD (4 байта) на РОН (2 байта) без знака
DIVURw2Деление регистра MDL (2 байта) на РОН (2 байта) без знака
CPLRw2Арифметическое умножение регистра РОН (2байта) на (-1)
CPLBRb2Арифметическое умножение регистра РОН (1байт) на (-1)
NEGRw2Изменение знака в регистре РОН размером 2 байта
NEGBRb2Изменение знака в регистре РОН (1 байт)

Логические операции

Мнемокод командыОперандыРазмерОписание команды
ANDRw, Rw2Логическое AND регистров РОН (2 байта)
ANDRw, [Rwi ]2Логическое AND регистра РОН (2 байта) с содержимым ячейки памяти
ANDRw, [Rwi +]2Логическое AND регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2
ANDRw, #data32Логическое AND регистра РОН (2 байта) с непосредственным операндом (3 бита)
ANDreg, #data164Логическое AND регистра (2 байта) с непосредственным операндом (16 бит)
ANDreg, mem4Логическое AND регистра (2 байта) с содержимым ячейки памяти
ANDmem, reg4Логическое AND содержимого ячейки памяти (2 байта) с регистром
ANDBRb, Rb2Логическое AND регистров РОН (1 байт)
ANDBRb, [Rwi ]2Логическое AND регистра РОН (1 байт) с содержимым ячейки памяти
ANDBRb, [Rwi +]2Логическое AND регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1
ANDBRb, #data32Логическое AND регистра РОН (1 байт) с непосредственным операндом (3 бита)
ANDBreg, #data84Логическое AND регистра (1 байт) с непосредственным операндом (8 бит)
ANDBreg, mem4Логическое AND регистра (1 байт) с содержимым ячейки памяти
ANDBmem, reg4Логическое AND содержимого ячейки памяти (1 байт) с регистром
ORRw, Rw2Логическое OR регистров РОН (2 байта)
ORRw, [Rwi ]2Логическое OR регистра РОН (2 байта) с содержимым ячейки памяти
ORRw, [Rwi +]2Логическое OR регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2
ORRw, #data32Логическое OR регистра РОН (2 байта) с непосредственным операндом (3 бита)
ORreg, #data164Логическое OR регистра (2 байта) с непосредственным операндом (16 бит)
ORreg, mem4Логическое OR регистра (2 байта) с содержимым ячейки памяти
ORmem, reg4Логическое OR содержимого ячейки памяти (2 байта) с регистром
ORBRb, Rb2Логическое OR регистров РОН (1 байт)
ORBRb, [Rwi ]2Логическое OR регистра РОН (1 байт) с содержимым ячейки памяти
ORBRb, [Rwi +]2Логическое OR регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1
ORBRb, #data32Логическое OR регистра РОН (1 байт) с непосредственным операндом (3 бита)
ORBreg, #data84Логическое OR регистра (1 байт) с непосредственным операндом (8 бит)
ORBreg, mem4Логическое OR регистра (1 байт) с содержимым ячейки памяти
ORBmem, reg4Логическое OR содержимого ячейки памяти (1 байт) с регистром
XORRw, Rw2Логическое XOR регистров РОН (2 байта)
XORRw, [Rwi ]2Логическое XOR регистра РОН (2 байта) с содержимым ячейки памяти
XORRw, [Rwi +]2Логическое XOR регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2
XORRw, #data32Логическое XOR регистра РОН (2 байта) с непосредственным операндом (3 бита)
XORreg, #data164Логическое XOR регистра (2 байта) с непосредственным операндом (16 б/tdит)
XORreg, mem4Логическое XOR регистра (2 байта) с содержимым ячейки памяти
XORmem, reg4Логическое XOR содержимого ячейки памяти (2 байта) с регистром
XORBRb, Rb2Логическое XOR регистров РОН (1 байт)
XORBRb, [Rwi ]2Логическое XOR регистра РОН (1 байт) с содержимым ячейки памяти
XORBRb, [Rwi +]2Логическое XOR регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1
XORBRb, #data32Логическое XOR регистра РОН (1 байт) с непосредственным операндом (3 бита)
XORBreg, #data84Логическое XOR регистра (1 байт) с непосредственным операндом (8 бит)
XORBreg, mem4Логическое XOR регистра (1 байт) с содержимым ячейки памяти
XORBmem, reg4Логическое XOR содержимого ячейки памяти (1 байт) с регистром

Логические операции с битами

Мнемокод командыОперандыРазмерОписание команды
BCLRbitaddr2Сброс бита
BSETbitaddr2Установка бита
BMOVbitaddr, bitaddr4Копирование бита
BMOVNbitaddr, bitaddr4Копирование бита и инвертирование второго операнда
BANDbitaddr, bitaddr4Логическое AND битов
BORbitaddr, bitaddr4Логическое OR битов
BXORbitaddr, bitaddr4Логическое XOR битов
BCMPbitaddr, bitaddr4Сравнение битов
BFLDHbitoff, #mask8,#data84Побитовая модификация маскированных битов старшего байта битадресуемого слова в памяти с непосредственным операндом
BFLDLbitoff, #mask8, #data84Побитовая модификация маскированных битов младшего байта битадресуемого слова в памяти с непосредственным операндом

Команды сравнения и управления циклом

Мнемокод командыОперандыРазмерОписание команды
CMPRw, Rw2Сравнение регистров РОН (2 байта)
CMPRw, [Rwi ]2Сравнение регистра РОН (2 байта) с содержимым ячейки памяти
CMPRw, [Rwi +]2Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением указателя памяти на 2
CMPRw, #data32Сравнение регистра РОН (2 байта) с непосредственным операндом (3 бита)
CMPreg, #data164Сравнение регистра РОН (2 байта) с непосредственным операндом (16 бит)
CMPreg, mem4Сравнение регистра SFR (2 байта) с содержимым ячейки памяти
CMPBRb, Rb2Сравнение регистров РОН (1 байт)
CMPBRb, [Rwi ]2Сравнение регистра РОН (1 байт) с содержимым ячейки памяти
CMPBRb, [Rwi +]2Сравнение регистра РОН (1 байт) с содержимым ячейки памяти с последующим увеличением указателя памяти на 1
CMPBRb, #data32Сравнение регистра РОН (1 байт) с непосредственным операндом (3 бита)
CMPBreg, #data84Сравнение регистра РОН (1 байт) с непосредственным операндом (8 бит)
CMPBreg, mem4Сравнение регистра SFR (1 байт) с содержимым ячейки памяти
CMPD1Rw, #data42Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим уменьшением значения РОН на 1
CMPD1Rw, #data164Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим уменьшением значения РОН на 1
CMPD1Rw, mem4Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим уменьшением значения РОН на 1
CMPD2Rw, #data42Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим уменьшением значения РОН на 2
CMPD2Rw, #data164Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим уменьшением значения РОН на 2
CMPD2Rw, mem4Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим уменьшением значения РОН на 2
CMPI1Rw, #data42Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим увеличением значения РОН на 1
CMPI1Rw, #data164Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим увеличением значения РОН на 1
CMPI1Rw, mem4Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением значения РОН на 1
CMPI2Rw, #data42Сравнение регистра РОН (2 байта) с непосредственным значением (4 бита) с последующим увеличением значения РОН на 2
CMPI2Rw, #data164Сравнение регистра РОН (2 байта) с непосредственным значением (16 бит) с последующим увеличением значения РОН на 2
CMPI2Rw, mem4Сравнение регистра РОН (2 байта) с содержимым ячейки памяти с последующим увеличением значения РОН на 2

Команды сдвига

Мнемокод командыОперандыРазмерОписание команды
SHLRw, Rw2Логический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН
SHLRw, #data42Логически сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита)
SHRRw, Rw2Логический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН
SHRRw, #data42Логический сдвиг вправо содержимого регистра РОН (2 байта) на на количество разрядов, указанное в непосредственном операнде (4 бита)
ROLRw, Rw2Циклический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН
ROLRw, #data42Циклический сдвиг влево содержимого регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита)
RORRw, Rw2Циклический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН
RORRw, #data42Циклический сдвиг вправо содержимым регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита)
ASHRRw, Rw2Арифметический сдвиг вправо содержимого регистра РОН (2 байта) на количество разрядов, указанное в РОН
ASHRRw, #data42Арифметический сдвиг вправо содержимым регистра РОН (2 байта) на количество разрядов, указанное в непосредственном операнде (4 бита)

Пересылка данных

Мнемокод командыОперандыРазмерОписание команды
MOVRw, Rw2Копирование в регистр РОН (2 байта) содержимого регистра РОН (2 байта)
MOVRw, #data42Копирование в регистр РОН (2 байта) непосредственного значения (4 бита)
MOVreg, #data164Копирование в регистр (2 байта) непосредственного значения (16 бит)
MOVRw, [Rw]2Копирование в регистр РОН (2 байта) содержимого ячейки памяти
MOVRw, [Rw +]2Копирование в регистр РОН (2 байта) содержимого ячейки памяти с последующим увеличением указателя памяти на 2
MOV[Rw], Rw2Копирование в ячейку памяти содержимого регистра РОН (2 байта)
MOV[-Rw], Rw2Копирование в ячейку памяти содержимого регистра РОН (2 байта) с последующим уменьшением указателя памяти на 2
MOV[Rw], [Rw]2Копирование в ячейку памяти (2 байта) содержимого ячейки памяти (2 байта)
MOV[Rw +], [Rw]2Копирование в ячейку памяти (2 байта) содержимого ячейки памяти (2 байта) с последующим увеличением указателя памяти на 2
MOV[Rw], [Rw +]2Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта) с последующим увеличением указателя памяти на 2
MOVRw,[Rw+#data16]4Копирование в регистр РОН (2 байта) содержимого ячейки памяти (2 байта)
MOV[Rw +#data16],Rw4Копирование в ячейку памяти содержимого регистра РОН (2 байта)
MOV[Rw], mem4Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта)
MOVmem, [Rw]4Копирование содержимого ячейки памяти (2 байта) в ячейку памяти (2 байта)
MOVreg, mem4Копирование в регистр (2 байта) содержимого ячейки памяти (2 байта)
MOVmem, reg4Копирование в ячейку памяти значения регистра (2 байта)
MOVBRb, Rb2Копирование в регистр РОН (1 байт) значения регистра РОН (1 байт)
MOVBRb, #data42Копирование в регистр РОН (1 байт) непосредственного значения (4 бита)
MOVBreg, #data84Копирование в регистр (1 байт) непосредственного значения (8 бит)
MOVBRb, [Rw]2Копирование в регистр РОН (1 байт) содержимого ячейки памяти
MOVBRb, [Rw +]2Копирование в регистр РОН (1 байт) содержимого ячейки памяти с последующим увеличением указателя памяти на 1
MOVB[Rw], Rb2Копирование в ячейку памяти содержимого регистра РОН (1 байт)
MOVB[-Rw], Rb2Копирование в ячейку памяти содержимого регистра РОН (1 байт) с последующим уменьшением указателя памяти на 1
MOVB[Rw], [Rw]2Копирование в ячейку памяти содержимого ячейки памяти (1 байт)
MOVB[Rw +], [Rw]2Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) с последующим увеличением указателя памяти на 1
MOVB[Rw], [Rw +]2Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт) с последующим увеличением указателя памяти на 1
MOVBRb,[Rw+#data16]4Копирование в регистр РОН (1 байт) содержимого ячейки памяти (1 байт)
MOVB[Rw +#data16],Rb4Копирование в ячейку памяти (1 байт) значения регистра РОН (1 байт)
MOVB[Rw], mem4Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт)
MOVBmem, [Rw]4Копирование в ячейку памяти (1 байт) содержимого ячейки памяти (1 байт)
MOVBreg, mem4Копирование в регистр (1 байт) содержимого ячейки памяти (1 байт)
MOVBmem, reg4Копирование в ячейку памяти (1 байт) значения регистра (1 байт)
MOVBSRw, Rb2Копирование в регистр РОН (2 байта) значения регистра РОН (1 байт) со знаковым расширением
MOVBSreg, mem4Копирование в регистр (2 байта) содержимого ячейки памяти (1 байт) со знаковым расширением
MOVBSmem, reg4Копирование в ячейку памяти (2 байта) содержимого регистра (1 байт) со знаковым расширением
MOVBZRw, Rb2Копирование в регистр РОН (2 байт) значения регистра РОН (1 байта) с расширением нулями
MOVBZreg, mem4Копирование в регистр (2 байта) содержимого ячейки памяти (1 байт) с расширением нулями
MOVBZmem, reg4Копирование в ячейку памяти (2 байта) значения регистра РОН (1 байт) с расширением нулями

Операции перехода и вызова

Мнемокод командыОперандыРазмерОписание команды
JMPAcc, caddr4Абсолютный переход по условию
JMPIcc, [Rw]2Условный переход по адресу, находящемуся в регистре РОН
JMPRcc, rel2Условный переход по смещению относительно данной инструкции
JMPSseg, caddr4Межсегментный переход
JBbitaddr, rel4Переход относительно данной инструкции, если бит установлен
JBCbitaddr, rel4Переход относительно данной инструкции и сброс бита, если бит установлен
JNBbitaddr, rel4Переход относительно данной инструкции, если бит сброшен
JNBSbitaddr, rel4Переход относительно данной инструкции и установка бита, если бит сброшен
CALLAcc, caddr2Вызов подпрограммы по условию
CALLIcc, [Rw]2Вызов подпрограммы по условию, адрес подпрограммы — в регистре РОН
CALLRrel2Безусловный вызов подпрограммы по смещению относительно данной инструкции
CALLSseg, caddr4Межсегментный вызов подпрограммы
PCALLreg, caddr4Выгрузить на стек значение регистра и перейти к подпрограмме
TRAP#trap74Вызов подпрограммы прерывания

Операции возврата

Мнемокод командыОперандыРазмерОписание команды
RET2Возврат из подпрограммы
RETS2Возврат из подпрограммы по межсегментному вызову
RETPreg2Возврат из подпрограммы и запись в регистр значения, снятого со стека
RETI2Возврат из прерывания

Операции с системным стеком

Мнемокод командыОперандыРазмерОписание команды
POPreg2Снять значение со стека и поместить в регистр
PUSHreg2Выгрузить на стек значение регистра
SCXTreg, #data164Выгрузить на стек значение регистра и загрузить в регистр непосредственное значение (16 бит)
SCXTreg, mem4Выгрузить на стек значение регистра и загрузить в регистр значение из ячейки памяти

Управление системой

Мнемокод командыОперандыРазмерОписание команды
SRST4Программный сброс контроллера
IDLE4Режим пониженного энергопотребления микроконтроллера, при котором работает его внутренняя периферия
PWRDN4Полная остановка микроконтроллера, в том числе внутренней периферии
SRVWDT4Сброс Watchdog таймера
DISWDT4Запрещение работы Watchdog таймера
EINIT4Конец инициализации

Команда нормализации

Мнемокод командыОперандыРазмерОписание команды
PRIORRw, Rw2Возвращает номер первого установленного бита

Вспомогательные операции

Мнемокод командыОперандыРазмерОписание команды
NOP2Пустая операция

Расширенные команды
(не поддерживаются микроконтроллерами серии 8xС166)

Мнемокод командыОперандыРазмерОписание команды
ATOMIC#irang22Запрещение PEC-прерываний и прерываний класса А на количество инструкций, указанных в операнде
EXTR#irang22Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо регистров SFR к регистрам ESFR на количество инструкций, указанных в операнде
EXTPRw, #irang22Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к странице, указанной в первом операнде, на количество инструкций, указанных во втором операнде
EXTP#pag10, #irang24Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к странице, указанной в первом операнде, на количество инструкций, указанных во втором операнде
EXTPRRw, #data22Объединение возможностей инструкций EXTP и EXTR
EXTPR#pag10, #irang24Объединение возможностей инструкций EXTP и EXTR
EXTSRw, #irang22Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к сегменту, указанному в первом операнде, на количество инструкций, указанных во втором операнде
EXTS#seg8, #irang24Запрещение PEC-прерываний и прерываний класса А, переадресация обращения вместо стандартной DPP-схемы к сегменту, указанному в первом операнде, на количество инструкций, указанных во втором операнде
EXTSRRw, #irang22Объединение возможностей инструкций EXTS и EXTR
EXTSR#seg8, #irang24Объединение возможностей инструкций EXTS и EXTR