Навигация по странице:
|
_06Л_Битовые и символные команды. 3 Биториентированные команды Мнемонические обозначения кода операции биториентированных команд начинаются с символа B
3.3. Бит-ориентированные команды
Мнемонические обозначения кода операции бит-ориентированных команд начинаются с символа B. Все они имеют одинаковый синтаксис:
[label] КОП f,b
Здесь символом 'f', как и в предыдущих случаях, обозначается адрес файлового регистра, содержащего анализируемый бит. Символ 'b' указывает номер бита в регистре 'f'. Бит-ориентированных команд всего четыре: две команды проверки на равенство бита нулю или единице, и две команды установки бита в единицу или ноль.
BTFSC - Проверка на равенство бита нулю. Если бит 'b' в регистре 'f' равен 0, тогда следующая команда пропускается. В случае если бит 'b' равен 0, вместо следующей по списку команды выполняется пустая операция (NOP) увеличивая длительность выполнения данной команды до двух командных циклов.
Код: 01 10bb bfff ffff
Пример #1: HERE BTFSC FLAG,1
FALSE GOTO PROCESS_CODE
TRUE *
*
BTFSS - Проверка на равенство бита 1. Если бит 'b' в регистре 'f' равен 1, тогда следующая команда пропускается. Выполняется аналогично команде BTFSC.
BSF и BCF - команды установки в 1 или 0 соответственно бита 'b' в регистре 'f'
3.4. Символьные команды
ADDLW - Сложение литеры и W. Содержимое регистра W складывается с 8-ми битной литерой k и результат помещается в регистр W.
Синтаксис: [label] ADDLW k
Код: 11 111x kkkk kkkk
Изменяет флаги: C, DC, Z
Пример #1: ADDLW 0x15
Перед выполнением: W = 0x10
После выполнения: W = 0x25
SUBLW - Вычитание W из литеры. Содержимое регистра W вычитается из из 8-ми битного символа 'k'. Результат помещается в регистр W.
Синтаксис: [label] SUBLW k
IORLW - Логическая операция поразрядного включающего ИЛИ между литерой и W. Содержимое регистра W подвергается поразрядной логической операции включающего ИЛИ с 8-битной литерой 'k'. Результат помещается в регистр W.
Синтаксис: [label] IORLW k
Пример: IORLW 0x35
Перед выполнением: W = 0x9A
После выполнения: W = 0xBF Z = 1
XORLW - Логическая операция исключающего ИЛИ с символом и W. Содержимое регистра W подвергается поразрядной логической операции исключающего ИЛИ с 8-битной литерой 'k'. Результат помещается в регистр W.
Пример: XORLW 0x35
Перед выполнением: W=0x9A
После выполнения: W=0xAF Z=1
ANDLW - Логическая операция "И" с символом и W. Логическая опрерация поразрядного сложения 8-ми битной литеры и содержимого регистра W. Результат сложения помещается в W регистр.
Пример: ANDLW 0x35
Перед выполнением: W = 0x9A
После выполнения: W = 0x10 Z = 1
MOVLW - Пересылка литеры в регистр W
Синтаксис: [label] MOVLW k
3.5. Справочные данные для изучения команд
В этом пункте в двух таблицах собраны обозначения (Табл.1), использовавшиеся при описании инструкций микроконтроллеров PIC16, а также форматы (Табл.2) символьных и числовых данных, которые используются в MPASM.
Табл.1
f
|
Адрес регистра
|
W
|
Рабочий регистр
|
b
|
Номер бита в 8-ми разрядном регистре
|
k
|
Константа
|
x
|
Не используется. Ассемблер формирует код с х=0
|
d
|
Регистр назначения:
d=0 - результат в регистре W
d=1 - результат в регистре f.
По умолчанию d=1
|
label
|
Имя метки
|
TOS:
|
Вершина стека
|
РС
|
Счетчик команд
|
PCLATCH
|
Регистр указатель номера страницы в памяти прграмм
|
ТО
|
Тайм-аут
|
PD:
|
Выключение питания
|
Dest
|
Регистр назначения: рабочий регистр W или регистр, заданный в команде
|
[ ]
|
Необязательные параметры
|
( )
|
Содержание
|
-->
|
Присвоение
|
< >
|
Битовое поле
|
|
Из набора
|
Табл.2
|
|
|