Описание инструкций PICmicro
Введение
Каждая инструкция - это в зависимости от группы 12-,14-, или 16-битное слово, состоящее из КОДА ОПЕРАЦИИ, который говорит о типе инструкции, и одного или более операндов, которые определяют работу инструкции. Набор инструкций разделен на три основных категории: Для байт-ориентированых инструкций, 'f' (file register) указывает на файловый регистр, а 'd' (destination) указывает, куда помещается результат.

Если 'd'=0, то результат помещается в регистр W. Если 'd'=1, то результат помещается в файловый регистр, заданный в инструкции.

Для бит-ориентированных инструкций, 'b' (bit) указывает на номер бита, с которым производится операция (от 0 до 7).

Для операций с константами и операций передачи управления, 'k' содержит восьми- или одиннадцатибитную константу.

Все инструкции выполняются за один цикл, если результатом выполнения инструкции не стало изменение содержимого счетчика программы. В случае изменения, инструкция выполняется за два цикла. Один цикл инструкции состоит из четырех периодов генератора тактовой частоты. Например, при частоте генератора 4 МГц, время выполнения инструкции будет 1 мкс. Если в результате выполнения инструкции был изменен программный счетчик, инструкция будет выполняться 2 мкс.

Набор инструкций
Мнемоника, операнды Описание Циклы Биты состояния Примечания
Байт-ориентированные инструкции
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) - 1,2,3
INCF f,d Инкремент f 1 Z 1,2
INCFSZ f,d Инкремент f, пропустить если 0 1(2) - 1,2,3
IORWF f,d Лог. ИЛИ W с f 1 Z 1,2
MOVF f,d Поместить f 1 Z 1,2
MOVWF f Поместить W в f 1 - -
NOP Нет операции 1 - -
RLF f,d Кольц. сдвиг влево через Carry 1 C 1,2
RRF f,d Кольц. сдвиг вправо через Carry 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
Бит-ориентированные инструкции
BCF f,b Сброс бита b в f 1 - 1,2
BSF f,b Установка бита b в f 1 - 1,2
BTFSC f,b Пропустить, если сброшен 1(2) - 3
BTFSS f,b Пропустить, если установлен 1(2) - 3
Операции с константами и операции передачи управления
ADDLW k Сложение константы с W 1 C,DC,Z -
ANDLW k Лог. И константы с W 1 Z -
CALL k Вызов процедуры 2 - -
CLRWDT Обнуляет Watchdog Timer 1 TO,PD -
GOTO k Перейти на адрес 2 - -
IORLW k Лог. ИСКЛ. ИЛИ константы с W 1 Z -
MOVLW k Поместить константу в W 1 - -
RETFIE Возврат из прерывания 2 - -
RETLW k Возврат с константой в W 2 - -
RETURN Возврат из процедуры 2 - -
SLEEP Переход в режим спячки 1 TO,PD -
SUBLW k Вычитание W из константы 1 C,DC,Z -
XORLW k Лог. ИСКЛ.ИЛИ константы с W 1 Z -


Примечания:
1. Когда модифицируется регистр ввода/вывода, например MOVF 6,1, значение, используемое для модификации считывается непосредственно с ножек кристалла. Если значение защелки вывода для ножки, запрограммированной на выход равно 1, но внешний сигнал на этом выводе 0, то будет считываться 0.
2. Когда модифицируется регистр TMR0, пределитель обнуляется, если он был ассоциирован с модулем Timer0.
3. Если счетчик команд (PC) модифицирован инструкцией (в том числе btfss и btfsc), инструкция будет выполняться два цикла. Второй цикл выполнится как NOP.

Описание инструкций


ADDLW
Cложение константы с W

Синтаксис: ADDLW k
Выполнение: (W) + k -> W
Биты статуса: C,DC,Z

Пример:
addlw 0x15
До инструкции
W = 0x10
После инструкции
W = 0x25

ADDWF
Cложение W и f

Синтаксис: ADDWF f,d
Выполнение: (W) + (f) -> destination
Биты статуса: C,DC,Z

Пример1:
addwf FSR, 0
До инструкции
W = 0x17
FSR = 0xC2
После инструкции
W = 0xD9
FSR = 0xC2

Пример2:
addwf INDF, 1
До инструкции
W = 0x17
FSR = 0xC2
Содержимое по адресу FSR = 0x20
После инструкции
W = 0x17
FSR = 0xC2
Содержимое по адресу FSR = 0x37

ANDLW
Логическое И константы с W

Синтаксис: ANDLW k
Выполнение: (W) .AND. k -> W
Биты статуса: Z

Пример:
andlw 0x5F
До инструкции
W = 0xA3
После инструкции
W = 0x03

ANDWF
Логическое И W с f

Синтаксис: ANDWF f,d
Выполнение: (W) .AND. (f) -> destination
Биты статуса: Z

Пример:
andwf FSR, 1
До инструкции
W = 0x17
FSR = 0xC2
После инструкции
W = 0x17
FSR = 0x02


Источник: http://www.icmicro.narod.ru