ЗНАЕТЕ ЛИ ВЫ?

CLRWDT — Сброс сторожевого таймера



Синтаксис CLRWDT
Операнды  
Операция
Измен. флаги
Описание Сбрасывается регистр-счетчик сторожевого таймера WDT, а также его предделитель, если он подключен. При выполнении команды устанавливаются флаги таймаута и режима SLEEP
Пример ; w = 27 clrw ; w = 0

COMF — Инверсия регистра f

Синтаксис COMF f,d
Операнды
Операция
Измен. флаги Z
Описание Инвертируются все биты регистра f
Пример ; f(6) = 7 = 0b00000111 comf 6,1 ; f(6) = 248 = 0b11111000

DECF — Декремент регистра f

Синтаксис DECF f,d
Операнды
Операция
Измен. флаги C, DC, Z
Описание Инвертируются все биты регистра f
Пример ; f(4) = 7, w = 1 decf 4,0 ; f(4) = 7, w = 6

DECFSZ — Декремент регистра f и пропуск в случае нулевого результата

Синтаксис DECFSZ f,d
Операнды
Операция
Измен. флаги  
Описание Первым шагом происходит декремент регистра f и запись полученного результата в f или W в зависимости от операнда d. На втором шаге, если результат первого шага оказался нулевым, происходит инкремент регистра-счетчика команд PC, тем самым вызывая пропуск следующей команды.
Пример ; f(7) = 6, w = 0 loop: addlw 3 decfsz 7,1 goto exit_loop goto loop exit_loop: ; f(7) = 0, w = 18

GOTO — Переход по адресу

Синтаксис GOTO k
Операнды
Операция
Измен. флаги  
Описание В 11 младших бит счетчика программы PC загружается константа k. Два старших бита загружаются в счетчик команд из регистра PCLATH. Выполнение команды занимает 2 машинных цикла.
Пример ; w = 0 goto skip addlw 5 skip: addlw 3 ; w = 3

INCF — Декремент регистра f

Синтаксис INCF f,d
Операнды
Операция
Измен. флаги C, DC, Z
Описание Инвертируются все биты регистра f
Пример ; f(4) = 7, w = 1 incf 4,0 ; f(4) = 7, w = 8

INCFSZ — Декремент регистра f и пропуск в случае нулевого результата

Синтаксис INCFSZ f,d
Операнды
Операция
Измен. флаги  
Описание Первым шагом происходит инкремент регистра f и запись полученного результата в f или W в зависимости от операнда d. На втором шаге, если результат первого шага оказался нулевым, происходит инкремент регистра-счетчика команд PC, тем самым вызывая пропуск следующей команды.
Пример ; f(7) = 254, w = 0 loop: addlw 3 incfsz 7,1 goto exit_loop goto loop exit_loop: ; f(7) = 0, w = 6

IORLW — Побитное «ИЛИ» W и константы k

Синтаксис IORLW k
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется побитное «ИЛИ» регистра W и 8-битной константы k. Результат помещается в регистр W.
Пример ; w = 3 = 0b11 iorlw 4 ; 0b100 ; w = 7 ; 0b111

IORWF — Побитное «ИЛИ» W и регистра f

Синтаксис IORWF f, d
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется побитное «ИЛИ» регистра W c содержимым регистра f. Результат помещается в регистр W, при d=0, или в f при d=1.
Пример ; w = 4 = 0b100, f(4)= 1 = 0b001 iorwf 4,0 ; w = 5 = 0b101, f(4)= 4

MOVF — Пересылка регистра f

Синтаксис MOVF f, d
Операнды
Операция
Измен. флаги Z
Описание Содержимое регистра f пересылается само в себя при d=1 или в регистр W, при d=0. Такая, на первый взгляд избыточная и абсурдная команда, на практике используется для проверки регистра на ноль (с помощью флага Z).
Пример ; f(4)= 0, Z = 0 movf 4,1 ; f(4)= 0, Z = 1

MOVLW — Пересылка константы k

Синтаксис MOVLW k
Операнды
Операция
Измен. флаги  
Описание Выполняется пересылка константы k в регистр W.
Пример ; w = 3 movlw 4 ; w = 4

MOVWF — Пересылка из регистра W в регистр f

Синтаксис MOVWF f
Операнды
Операция
Измен. флаги  
Описание Выполняется пересылка содержимого регистра W в регистр f.
Пример ; w = 4, f(2) = 12 movwf 2 ; f(2) = 4, w = 4

NOP — Простой

Синтаксис NOP
Операнды  
Операция  
Измен. флаги  
Описание В течение одного машинного цикла не выполняется никаких операций
Пример nop

RETFIE — Возврат из подпрограммы с включением прерываний

Синтаксис RETFIE
Операнды  
Операция
Измен. флаги  
Описание В счетчик команд PC записывается значение взятое из стека. Взводится флаг разрешения прерываний GIE. Команда выполняется за 2 машинных цикла.
Пример org 004h ; прерывание передает управление ; по этому адресу goto interrupt ; переходим к обработчику ... interrupt: ... retfie ; возвращаемся из обработчика ; с включением прерываний

RETLW — Выход из подпрограммы с загрузкой в регистр W константы k

Синтаксис RETLW k
Операнды
Операция
Измен. флаги  
Описание В регистр W загружается константа k. В счетчик команд PC загружается значение с вершины стека. Команда выполняется за 2 машинных цикла.
Пример ; w = 6 call subprogram ; w = 12 ... subprogram: nop retlw 12

RETURN — Выход из подпрограммы

Синтаксис RETURN
Операнды  
Операция
Измен. флаги  
Описание В счетчик команд PC загружается значение с вершины стека. Команда выполняется за 2 машинных цикла.
Пример ; w = 6 call subprogram ; w = 8 ... subprogram: addlw 2 return

RLF — Циклический сдвиг регистра f влево через флаг переноса С

Синтаксис RLF f,d
Операнды
Операция
Измен. флаги C
Описание Выполняется циклический сдвиг содержимого регистра f влево через флаг переноса. 0-й бит встает на место 1-го, 1-й на место 2-го и т.д. 7-й бит записывается в флаг переноса С, а затем из флага С в 0-й. В зависимости от операнда d результат операции записывается либо в регистре f, либо в регистре W.
Пример ; w = 12, f(4) = 135 = 0b10000111, c = 0 rlf 4,1 ; w = 12, f(4) = 16 = 0b00001111, c = 1 rlf 4,0 ; w = 30 = 0b00011110, f(4) = 16, c = 0

RRF — Циклический сдвиг регистра f вправо через флаг переноса С

Синтаксис RLF f,d
Операнды
Операция
Измен. флаги C
Описание Выполняется циклический сдвиг содержимого регистра f вправо через флаг переноса. 7-й бит встает на место 6-го, 6-й на место 5-го и т.д. 0-й бит записывается в флаг переноса С, а затем из флага С в 7-й. В зависимости от операнда d результат операции записывается либо в регистре f, либо в регистре W.
Пример ; w = 12, f(4) = 7 = 0b00000111, c = 0 rrf 4,1 ; w = 12, f(4) = 83 = 0b10000011, c = 1 rrf 4,0 ; w = 193 = 0b11000001, f(4) = 83, c = 1

SLEEP — Перейти в спящий режим

Синтаксис SLEEP
Операнды  
Операция
Измен. флаги  
Описание Команда сбрасывает флаг таймаута и устанавливает флаг спящего режима . Затем очищается регистр-счтчик сторожевого таймера и его предделитель если он настроен. После этого микроконтроллер переводится в спящий режим и тактовый генератор отключается.
Пример sleep

SUBLW — Вычитение W из константы k

Синтаксис SUBLW k
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется вычитание регистра W из 8-битной константы k. Результат помещается в регистр W.
Пример ; w = 3 sublw 5 ; w = 2

SUBWF — Вычитание W из регистра f

Синтаксис SUBWF f, d
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется вычитание регистра W из регистра f. Результат помещается в регистр W, при d=0, или в f при d=1.
Пример ; w = 4, f(3) = 6 subwf 3,0 ; w = 2

SWAPF — Обмен местами ниблов в регистре f

Синтаксис SWAPF f, d
Операнды
Операция
Измен. флаги  
Описание Выполняется обмен местами ниблов (четырехбитий) регистра f. Результат помещается в регистр W, при d=0, или в f при d=1.
Пример ; f(3) = 15 = 0b00001111 swapf 3,1 ; f(3) = 240 = 0b11110000

XORLW — Побитное «Исключающее ИЛИ» W и константы k

Синтаксис XORLW k
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется побитное «Исключающее ИЛИ» регистра W и 8-битной константы k. Результат помещается в регистр W.
Пример ; w = 3 = 0b11 xorlw 2 ; 0b10 ; w = 1 ; 0b01

XORWF — Побитное «Исключающее ИЛИ» W и регистра f

Синтаксис XORWF f, d
Операнды
Операция
Измен. флаги C, DC, Z
Описание Выполняется побитное «Исключающее ИЛИ» регистра W c содержимым регистра f. Результат помещается в регистр W, при d=0, или в f при d=1.
Пример ; w = 4 = 0b100, f(4)= 5 = 0b101 xorwf 4,0 ; w = 1 = 0b001, f(4)= 5  

Учебное издание

 

ДубровИгорь Александрович

Белошицкий Михаил Юрьевич

Попов Антон Николаевич

 

 





Последнее изменение этой страницы: 2016-06-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.232.96.22 (0.01 с.)