Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМТ (на редактировании).doc
Скачиваний:
31
Добавлен:
17.05.2015
Размер:
3.86 Mб
Скачать

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

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

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

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

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