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

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

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