MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки
 Assembler PICmicro   Примеры применения   Словарь терминов   Маркировка чипов   Корпуса 
 

Сводная таблица команд семейства PIC18XXXX

МнемоникаКраткое описаниеЦиклов16-ти битный кодИзменяет флагиПрим.
БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
ADDWF f,d,aСложение W и f10010 01DA FFFF FFFFC, DC, Z, OV, N1, 2, 6
ADDWFC f,d,aСложение W и f с использованием флага переноса10010 00DA FFFF FFFFC, DC, Z, OV, N1, 2, 6
ANDWF f,d,aПоразрядная операция И W и f10001 01DA FFFF FFFFZ, N1, 2, 6
CLRF f,aОчистка регистра f10110 101A FFFF FFFFZ2, 6
COMF f,d,aИнверсия содержимого регистра10001 11DA FFFF FFFFN,Z1, 2, 6
CPFSEQ f,aОперация сравнения f с W, пропуск след. команды если f=W1(2,3)0110 001A FFFF FFFFНет4, 6
CPFSGT f,aОперация сравнения f с W, пропуск след. команды если f>W1(2,3)0110 010A FFFF FFFFНет4, 6
CPFSLT f,aОперация сравнения f с W, пропуск след. команды если f<W1(2,3)0110 000A FFFF FFFFНет4, 6
DCFSNZ f,d,aУменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю1(2,3)0100 11DA FFFF FFFFНет1, 2, 3, 4, 6
DECF f,d,aУменьшение значения регистра f10000 01DA FFFF FFFFC, DC, Z, OV, N1, 2, 3, 4, 6
DECFSZ f,d,aУменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю1(2,3)0010 11DA FFFF FFFFНет1, 2, 3, 4, 6
INCF f,d,aУвеличение значения регистра f10010 10DA FFFF FFFFC, DC, Z, OV, N1, 2, 3, 4, 6
INCFSZ f,d,aУвеличение значения регистра f, пропуск следующей инструкции если результат равен нулю1(2,3)0011 11DA FFFF FFFFНет1, 2, 3, 4, 6
INFSNZ f,d,aУвеличение значения регистра f, пропуск следующей инструкции если результат не равен нулю1(2,3)0100 10DA FFFF FFFFНет1, 2, 3, 4, 6
IORWF f,d,aПоразрядная операция ИЛИ W и f10001 00DA FFFF FFFFZ, N1, 2, 6
MOVF f, d, aПересылка f10101 00DA FFFF FFFFZ, N1, 6
MOVFF fs, fdПересылка из fs в fd2(3)1100 FFFF FFFF FFFFS
1111 FFFF FFFF FFFFD
Нет
MOVWF f,aПересылка содержимого регистра W в регистр f10110 111A FFFF FFFFНет6
MULWF f,aУмножение содержимого регистров W и f10000 001A FFFF FFFFНет6
NEGF f, aперевод в обратную форму записи содержимого регистра f10110 110A FFFF FFFFC, DC, Z, OV, N1, 2, 6
RLCF f, d, aСдвиг влево регистра f через перенос10011 01DA FFFF FFFFC, N, Z6
RLNCF f, d, aСдвиг влево регистра f (без переноса)10100 01DA FFFF FFFFN, Z6
RRCF f, d, aСдвиг вправо регистра f через перенос10011 00DA FFFF FFFFC, N, Z6
RRNCF f, d, aСдвиг вправо регистра f (без переноса)10100 00DA FFFF FFFFN, Z6
SETF f,aУстановка всех битов регистра f10110 100A FFFF FFFFНет6
SUBFWB f,d,aВычитание f из W c заемом10101 01DA FFFF FFFFC, DC, Z, OV, N1, 2, 6
SUBWF f,d,aВычитание W из f10101 11DA FFFF FFFFC, DC, Z, OV, N6
SUBWFB f,d,aВычитание W из f c заемом10101 10DA FFFF FFFFC, DC, Z, OV, N1, 2, 6
SWAPF f, d, aОбмен местами полу-байт регистра f10011 10DA FFFF FFFFНет4, 6
TSTFSZ f,aтест f, пропуск если ноль1(2,3)1011 BBBA FFFF FFFFнет1, 2, 6
XORWF f,d,aПоразрядная операция исключающего ИЛИ W и f10001 10DA FFFF FFFFZ, N1, 2, 6
БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
BCF f,d,aСброс бита в f11001 BBBA FFFF FFFFНет1, 2, 6
BSF f,d,aУстановка бита в f11000 BBBA FFFF FFFFНет1, 2, 6
BTFSC f,b,aПропуск следующей команды если бит сброшен1(2,3)1011 BBBA FFFF FFFFНет3, 4, 6
BTFSS f,b,aПропуск следующей команды если бит установлен1(2,3)1010 BBBA FFFF FFFFНет3, 4, 6
BTG f,b,aИнвертирование бита в регистра f10111 BBBA FFFF FFFFНет1, 2, 6
СИМВОЛЬНЫЕ КОМАНДЫ
ADDLW kСложение W и k10000 1111 KKKK KKKKC, DC, Z, OV, N
ANDLW kЛогическая операция И W и k10000 1011 KKKK KKKKZ, N
IORLW kЛогическая операция ИЛИ W и k10000 1001 KKKK KKKKZ, N
LFSR f,kЗагрузка регистра FSR21110 1110 00FF KKKK
1111 0000 KKKK KKKK
Нет
MOVLB kПересылка литеры в регистр BSR10000 0001 KKKK KKKKНет
MOVLW kПересылка литеры в регистр W10000 1110 KKKK KKKKНет
MULLW kУмножение константы и W10000 1101 KKKK KKKKНет
RETLW kВозврат прерывания с записью константы в регистр W20000 1100 KKKK KKKKНет
SUBLW kВычитание W из константы10000 1000 KKKK KKKKC, DC, Z, OV, N
XORLW kЛогическая операция исключающего ИЛИ W и k10000 1010 KKKK KKKKZ, N
ТАБЛИЧНЫЕ КОМАНДЫ
TBLRD (*; *+; *-; +*)Чтение таблицы20000 0000 0000 10NN
NN=0 *
NN=1 *+
Нет
TBLWT (*; *+; *-; +*)Запись в таблицу20000 0000 0000 00NN
NN=0 *
NN=1 *+
Нет
КОМАНДЫ УПРАВЛЕНИЯ
BC nПереход если установлен флаг переноса (CARRY)1(2)1110 0010 NNNN NNNNНет
BN nПереход если установлен флаг отрицательного результата (N)1(2)1110 0110 NNNN NNNNНет
BNC nПереход если сброшен флаг переноса (CARRY)1(2)1110 0011 NNNN NNNNНет
BNN nПереход если сброшен флаг отрицательного результата (N)1(2)1110 0111 NNNN NNNNНет
BNOV nПереход если сброшен флаг переполнения (OV)1(2)1110 0101 NNNN NNNNНет
BNZ nПереход если сброшен флаг нулевого результата (Z)1(2)1110 0001 NNNN NNNNНет
BOV nПереход если установлен флаг переполнения (OV)1(2)1110 0100 NNNN NNNNНет
BRA nБезусловный переход21101 0NNN NNNN NNNNНет
BZ nПереход если установлен флаг нулевого результата (Z)1(2)1110 0000 NNNN NNNNНет
CALL k,sВызов подпрограммы21110 110S KKKK KKKK
1111 KKKK KKKK KKKK
Нет
CLRWDTСброс сторожевого таймера (WDT)10000 0000 0000 0100TO, PD
DAWДесятичная коррекция регистра W10000 0000 0000 0111C
GOTO kБезусловный переход21110 1111 KKKK KKKK
1111 KKKK KKKK KKKK
Нет
NOPНет операции10000 0000 0000 0000Нет
NOPНет операции11111 XXXX XXXX XXXX XXXXНет4
POPИзвлечение из стека10000 0000 0000 0110Нет
PUSHРазмещение в стеке10000 0000 0000 0101Нет
RCALL nОтносительный вызов подпрограммы21101 1NNN NNNN NNNNНет
RESETСброс10000 0000 1111 1111Команда влияет на все флаги
RETFIE sВозврат из прерывания20000 0000 0001 000SGIE/GIEH, PEIE/GIEL
RETURN sВозврат из подпрограммы20000 0000 0001 001SНет
SLEEPПереход в режим SLEEP10000 0000 0000 0011TO, PD

Примечания:
  1. При выполнении операции чтение - модификация - запись с портом ввода вывода исходное значение считывается с выводов порта, а не из выходных защелок
  2. При записи в TMR0 предделитель TMR0 сбрасывается, если он подключен к TMR0
  3. Если условие истинно, или изменяется PC, команда выполняется за два цикла. Вторая команда NOP
  4. Некоторые команды имеют 2 16-ти разрядных слова. Если по каким-то причинам счетчик команд попадет на 2-е слово команды, то оно будет выполнено как NOP.
  5. Если производится запись во внутреннюю память, то следующая команда не начнет выполнятся до тех пор пока не закончится цикл записи.
  6. В ассемблере MASM по умолчанию d=1.