| Мнемоника | Описание | Циклы | Флаги | Прим. |
| Байт-ориентированные команды | ||||
| ADDWF f,d | Сложение W с f | 1 | C,DC,Z | 1,2 |
| ANDWF f,d | Логическое "И" W с f | 1 | Z | 1,2 |
| CLRF f | Сброс регистра f | 1 | Z | 2 |
| CLRW | Сброс регистра W | 1 | Z | - |
| COMF f,d | Инверсия регистра f | 1 | Z | 1,2 |
| DECF f,d | Декремент регистра f | 1 | Z | 1,2 |
| DECFSZ f,d | Декремент f, пропустить команду, если 0 | 1(2) | Z | 1,2,3 |
| INCF f,d | Инкремент регистра f | 1 | Z | 1,2 |
| INCFSZ f,d | Инкремент f, пропустить команду, если 0 | 1(2) | Z | 1,2,3 |
| IORWF f,d | Логическое "ИЛИ" W c f | 1 | Z | 1,2 |
| MOVF f,d | Пересылка регистра F | 1 | Z | 1,2 |
| MOVWF f | Пересылка W в F | 1 | - | |
| NOP | Холостая команда | 1 | - | |
| RLF f,d | Вращение f влево через перенос | 1 | C | 1,2 |
| RRF f,d | Вращение f вправо через перенос | 1 | C | 1,2 |
| SUBWF f,d | Вычитание W из f | 1 | C,DC,Z | 1,2 |
| SWAPF f,d | Обмен местами тетрад в f | 1 | 1,2 | |
| XORWF f,d | Исключающее "ИЛИ" W и f | 1 | Z | 1,2 |
| Операции с константами и управляющими регистрами | ||||
| ADDLW k | Сложение константы с W | 1 | C,DC,Z | - |
| ANDLW k | Логическое "И" константы и W | 1 | Z | - |
| IORLW k | Логическое "ИЛИ" константы и W | 1 | Z | - |
| SUBLW k | Вычитание W из константы | |||
| MOVLW k | Пересылка константы в W | 1 | - | |
| XORLW k | Исключающее "ИЛИ" константы и W | 1 | Z | - |
| OPTIONS | Загрузка OPTIONS регистра | 1 | 4 | |
| TRIS f | Загрузка TRIS регистра | 1 | 4 | |
| Бит-ориентированные команды | ||||
| BCF f,b | Сброс бита b в регистре f | 1 | 1,2 | |
| BSF f,b | Установка бита b в регистре f | 1 | 1,2 | |
| BTFSC f,b | Пропустить команду, если бит b=0 | 1(2) | 3 | |
| BTFSS f,b | Пропустить команду, если бит b=1 | 1(2) | 3 | |
| Переходы | ||||
| CALL k | Вызов подпрограммы | 2 | - | |
| CLRWDT (k) | Сброс Watchdog таймера | 1 | /TO,/PD | - |
| GOTO k | Переход по адресу | 2 | - | |
| RETLW k | Возврат из подпрограммы с загрузкой константы в W | 2 | - | |
| RETFIE | Возврат из прерывания | 2 | - | |
| RETURN | Возврат из подпрограммы | 2 | - | |
| SLEEP | Переход в режим SLEEP | 1 | /TO,/PD | - |
| Мнемоники специальных инструкций | ||||
| Мнемоника | Описание | Эквивалентные операции |
Флаги | Прим. |
| ADDCF f,d | Добавить бит C к регистру | BTFSC STATUS,0 INCF f,d |
Z | |
| ADDDCF f,d | Добавить бит DC к регистру | BTFSC STATUS,1 INCF f,d |
Z | |
| B k | Переход | GOTO k | - | |
| BC k | Переход если C=1 | BTFSC STATUS,0 GOTO k |
- | |
| BDC k | Переход если DC=1 | BTFSC STATUS,1 GOTO k |
- | |
| BNC k | Переход если C=0 | BTFSS STATUS,0 GOTO k |
- | |
| BNDC k | Переход если DC=0 | BTFSS STATUS,1 GOTO k |
- | |
| BNZ k | Переход если не ноль | BTFSS STATUS,2 GOTO k |
- | |
| BZ k | Переход если ноль | BTFSC STATUS,2 GOTO k |
- | |
| CLRC | Очистить бит C | BCF STATUS,0 - |
||
| CLRDC | Очистить бит DC | BCF STATUS,1 |
- | |
| CLRZ | Очистить бит Z | BCF STATUS,2 |
- | |
| LCALL k | ||||
| LGOTO k | ||||
| MOVFW f | Пересылка регистра в W | MOVF f,0 | Z | |
| NEGF f,d | Изменение знака регистра | COMF f,1 INCF f,d Z |
||
| SETC | Установить бит C | BSF STATUS,0 |
- | |
| SETDC | Установить бит DC | BSF STATUS,1 |
- | |
| SETZ | Установить бит Z | BSF STATUS,2 |
- | |
| SKPC | Пропустить если C=1 | BTFSS STATUS,0 |
- | |
| SKPDC | Пропустить если DC=1 | BTFSS STATUS,1 |
- | |
| SKPNC | Пропустить если C=0 | BTFSC STATUS,0 |
- | |
| SKPNDC | Пропустить если DC=0 | BTFSC STATUS,1 |
- | |
| SKPNZ | Пропустить если не ноль | BTFSC STATUS,2 |
- | |
| SKPZ | Пропустить если ноль | BTFSS STATUS,2 |
- | |
| SUBCF f,d | Вычесть бит C из регистра | BTFSC STATUS,0 DECF f,d |
Z | |
| SUBDCF f,d | Вычесть бит DC из регистр | BTFSC STATUS,1 DECF f,d |
Z | |
| TSTF f | Проверка регистра | MOVF f,1 | Z | |
f - адрес регистра (0x00 - 0x7f)
d - выбор приемника для результата (d=0: результат сохраняется в W; d=1: результат сохраняется в регистр f. По умолчанию d=1.)
b - адрес бита (0 - 7) в регистре
k - символьное поле, константа, метка.
Примечание 1: Когда модифицируется регистр ввода/вывода, например MOVF 6,1, значение, используемое для модификации считывается непосредственно с ножек кристалла. Если значение защелки вывода для ножки, запрограммированной на вывод равно "1", но внешний сигнал на этом выводе "0" из-за "навала" снаружи, то будет считываться "0".
Примечание 2: Если операндом этой команды является регистр TMR0 (и, если допустимо, d=1), то делитель, если он подключен к Timer0, будет обнулен.
Примечание 3: Если изменяется Program Counter (PC) или выполняется заданное условие, то команда требует два цикла. Второй цикл выполняется как NOP.
Примечание 4: Команды TRIS и OPTION помещены в перечень команд для совместимости с семейством PIC16C5X. Их использование не рекомендуется. В PIC16C84 регистры TRIS и OPTION доступны для чтения и записи как обычные регистры с номером. Предупреждаем, что эти команды могут не поддерживаться в дальнейших разработках PIC16CXX.
