Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕК_4.doc
Скачиваний:
6
Добавлен:
15.11.2019
Размер:
353.79 Кб
Скачать

Побитное 'или1 константы и w

Синтаксис: Операнды: Операция: Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

[label] IORLW

О < k < 255

(W) .OR. k -»(W)

Z

11

1000

kkkk

kkkk

Выполняется побитное 'ИЛИ' содержимого регистра W и

8-разрядной константы 'к'. Результат сохраняется в

регистре W.

1

1

IORLW 0x35

До выполнения команды

W = 0х9А После выполнения команды

W = OxBF

I0RWF

С интаксис: Операнды:

Операция: Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

Побитное 'ИЛИ1 W и f

f,d

[label] I0RWF О < f <127

de [0,1]

(W) .OR. (f) -»(dest)

Z

00

0100

dfff

ffff

Выполняется побитное 'ИЛИ' содержимого регистров W и

Т. Если d=0, результат сохраняется в регистре W. Если

d=1, результат сохраняется в регистре Т.

1

1

IORWF RESULT.0

До выполнения команды

RESULT = 0x13

W = 0x91 После выполнения команды

RESULT = 0x13

W = 0x93

MOVF

С интаксис: Операнды:

Операция: Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

Переслать f

f,d

[label] MOVF 0 < f <127

de [0,1] (f) -> (dest)

Z

00

1000

dfff

ffff

Содержимое регистра Т пересылается в регистр

адресата. Если d=0, значение сохраняется в регистре W.

Если d=1, значение сохраняется в регистре 'f. d=1

используется для проверки содержимого регистра Т на

ноль.

1

1

MOVF FSR.0

После выполнения команды

W = значение регистра FSR

MOVLW

Переслать константу в W

Синтаксис: Операнды: Операция: Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

[label] MOVLW 0 < k < 255

Нет

11

OOxx

kkkk

kkkk

Переслать константу 'к' в регистр W. В неиспользуемых битах ассемблер устанавливает '0'. 1 1

MOVLW 0x5A

После выполнения команды W = 0х5А

M0VWF

Переслать W в f

Синтаксис:

[label] MOVWF f

Операнды:

0 < f <127

Операция:

(W)->(t)

Измен, флаги:

Нет

Код:

00

0000

lfff

ffff

Описание:

Переслать содержимое регистра W в регистр Т.

Слов:

1

Циклов:

1

Пример:

MOVWF OPTION_REG

До выполнения команды

OPTION = OxFF

W = 0x4F

После выполнения команды

OPTION = 0x4F

W = 0x4F

NOP

Нет операции

Синтаксис:

[label] NOP

Операнды:

Нет

Операция:

Нет операции

Измен, флаги:

Нет

Код:

00

0000

ОххО

0000

Описание:

Нет операции

Слов:

1

Циклов:

1

Пример:

NOP

OPTION

Загрузить регистр OPTION

Синтаксис: Операнды: Операция: Измен, флаги:

[label] OPTION Нет (W) -»OPTION Нет

Код:

00

0000

оно

0010

Описание:

Слов: Циклов: Пример:

Переслать содержимое регистра W в регистр OPTION. Инструкция поддерживается для совместимости программы с семейством микроконтроллеров PIC16C5X. Запись/чтение регистра OPTION можно выполнить прямой или косвенной адресацией. 1 1

Для совместимости программного обеспечения с последующими выпускаемыми микроконтроллерами семейства PIC16СХХ не рекомендуется использовать эту инструкцию.

RETFIE

Возврат из подпрограммы с разрешением прерываний

Синтаксис: Операнды:

Операция:

Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

RETFIE

[1аЬеЦ

Нет

TOS -»PC

1 -^

Нет

00

0000

0000

1001

Возврат из подпрограммы обработки прерываний.

Вершина стека TOS загружается в счетчик команд PC.

Устанавливается в '1' флаг глобального разрешения

прерываний GIE(INTCON<7>). Инструкция выполняется за

2 цикла.

1

2

RETFIE

До выполнения команды

После выполнения команды PC = TOS GIE= 1

RETLW

Возврат из подпрограммы с загрузкой константы в W

Синтаксис: Операнды:

Операция:

Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

[1аЬеЦ

0 < к < 255

RETLW

TOS -»PC Нет

11

Olxx

kkkk

kkkk

В регистр W загружается 8-разрядная константа. Вершина стека TOS загружается в счетчик команд PC. Инструкция выполняется за 2 цикла. 1

CALL

TABLE

TABLE ADDWF PCL.f

RETLW k1

RETLW k2

RETLW

kn

До выполнения команды W = 0x07

После выполнения команды

W = значение к8

RETURN

Возврат из подпрограммы

Синтаксис:

[label] RETURN

Операнды:

Нет

Операция:

TOS -»PC

Измен, флаги:

Нет

Код:

00

0000

0000

1000

Описание:

Слов:

Циклов:

Пример:

Возврат из подпрограммы. Вершина стека TOS загружается в счетчик команд PC. Инструкция выполняется за 2 цикла. 1 2

RETURN

После выполнения команды PC = TOS

RLF

С интаксис: Операнды:

Операция: Измен, флаги: Код:

Описание:

Циклический сдвиг f влево через перенос

f,d

[label] RLF 0<f < 127 de [0,1] См.описание С

00

1101

dfff

ffff

Выполняется циклический сдвиг влево содержимого регистра f через бит С регистра STATUS. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в регистре Т.

С

Регистр f

Слов:

1

Циклов:

1

Пример:

RLF REG 1,0

До выполнения команды

REG1 =1110 0110

С = 0

После выполнения команды

REG1 =1110 0110

W = 1100 1100

С = 1

RRF

С интаксис: Операнды:

Операция: Измен, флаги: Код:

Описание:

Циклический сдвиг f вправо через перенос

RRF

f,d

[label] 0<f < 127 de [0,1] См.описание С

00

1100

dfff

ffff

Выполняется циклический сдвиг вправо содержимого регистра f через бит С регистра STATUS. Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в регистре Т.

С

Регистр Т

Слов:

1

Циклов:

1

Пример:

RRF REG 1,0

До выполнения команды

REG1 =1110 0110

С = 0

После выполнения команды

REG1 =1110 0110

W = 0111 0011

С = 0

SLEEP

Перейти в режим SLEEP

Синтаксис: Операнды:

Операция:

Измен, флаги: Код:

Описание:

Слов:

Циклов:

Пример:

[label] SLEEP

Нет

00h -»WDT

00h -> предделитель WDT

1 -»-TO

0^-PD

-TO, -PD

00

0000

0110

0011

Сбросить флаг включения питания -PD в '0'. Установить

флаг переполнения WDT -ТО в Т. Очистить таймер WDT

и его предделитель. Перевести микроконтроллер в

режим SLEEP и выключить тактовый генератор.

Подробное описание смотрите в разделе 14.9.

1

1

SLEEP

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]