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

Bтfsc – Условный переход при нулевом бите b регистра f

Синтаксис

BTFSC f,b

Операнды

Операция

Измен.

флаги

Описание

Если бит b регистра f устанавлен в 0, инкрементируется счетчик команд PC (тем самым, пропускается следующая команда), в противном случае ничего не выполняется. В случае инкремента счетчика команда выполняется за 2 машинных цикла, иначе – за 1.

Пример

; f(7) = 6 = 0b110, w = 1

btfsc 7,1

addlw 4

btfsc 7,0

addlw 9

; w = 10

Bтfss – Условный переход при единичном бите b регистра f

Синтаксис

BTFSS f,b

Операнды

Операция

Измен.

флаги

Описание

Если бит b регистра f устанавлен в 1, инкрементируется счетчик команд PC (тем самым, пропускается следующая команда), в противном случае ничего не выпоняется. В случае инкремента счетчика команда выполняется за 2 машинных цикла, иначе – за 1.

Пример

; f(7) = 6 = 0b110, w = 1

btfss 7,1

addlw 4

btfss 7,0

addlw 9

; w = 5

Call – Вызов подпрограммы

Синтаксис

CALL k

Операнды

Операция

Измен.

флаги

Описание

Адрес следующей инструкции сохраняется в стеке. В 11 младших бит счетчика программы PC загружается константа k. Два старших бита загружаются в счетчик команд из регистра PCLATH. Выполнение команды занимает 2 машинных цикла.

Пример

; w = 0

call subprogram

addlw 5

; w = 15

...

subprogram:

addlw 10

return

Clrf – Обнуление регистра f

Синтаксис

CLRF f

Операнды

Операция

Измен.

флаги

Z

Описание

Обнуляются все биты регистра f

Пример

; f(6) = 27

clrf 6

; f(6) = 0

Clrw – Обнуление рабочего регистра w

Синтаксис

CLRW

Операнды

Операция

Измен.

флаги

Z

Описание

Обнуляются все биты регистра W

Пример

; w = 27

clrw

; w = 0

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