Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программируемые контроллеры для систем управления ч2. Г.И.Загарий, В.С. Коновалов В.С., Н.О. Ковзель, В.И. Поддубняк, А.И. / Программируемые контроллеры для систем управления ч2. Г.И.Загарий, В.С. Коновалов В.С., Н.О. Ковзель, В.И. Поддубняк, А.И. .doc
Скачиваний:
317
Добавлен:
08.08.2013
Размер:
15.9 Mб
Скачать

7.2.1 Описание команд

ADDLW

Сложить константу и регистр W

Синтаксис:

[label]

ADDLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

(W)+k→(W)

Изменяемые биты состояния:

C, DC, Z

Код:

11

111х

kkkk

kkkk

Описание:

Содержимое регистра W увеличивается на значение 'k' и результат помещается в регистр W

Слов:

1

Циклов:

1

Пример:

ADDLW

0х15

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

W = 0x10

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

W = 0x25

ADDWF

Сложить регистр W и регистр f

Синтаксис:

[label]

ADDWf

F,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(W)+(f)→(dest)

Изменяемые биты состояния:

C, DC, Z

Код:

00

0111

dfff

ffff

Описание:

Содержимое регистра Wувеличивается на значение регистраf;

если d=0 результат помещается в регистрW,

если d=1 результат помещается в регистрf

Слов:

1

Циклов:

1

Пример:

ADDWF

FSR,0

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

W = 0x17

FSR = 0xC2

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

W = 0xD9

FSR = 0xC2

ANDLW

Конъюнкция регистра W и константы k

Синтаксис:

[label]

ANDLW

k

Операнды:

0 ≤ f ≤ 255

Операция:

(W) И (k)→(W)

Изменяемые биты состояния:

Z

Код:

11

1001

kkkk

kkkk

Описание:

Производится конъюнкция содержимого константы kи регистраW, результат помещается в регистрW

Слов:

1

Циклов:

1

Пример:

ANDLW

0x5F

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

W = 0xA3

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

W = 0x03

ANDWF

Конъюнкция регистра 'f' и регистра W

Синтаксис:

[label]

ANDWF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(W) И (f)→(dest)

Изменяемые биты состояния:

Z

Код:

00

0101

dfff

ffff

Описание:

Производится конъюнкция содержимого регистра 'f' и регистраW

если d=0, результат помещается в регистрW,

если d=1, результат помещается в регистрf

Слов:

1

Циклов:

1

Пример:

ANDWF

FSR,1

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

W = 0x17

FSR = 0xC2

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

W = 0x17

FSR = 0x02

BCF

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

Синтаксис:

[label]

BCF

F,b

Операнды:

0 ≤ f ≤ 127

0 ≤ b ≤ 7

Операция:

0→f,<b>

Изменяемые биты состояния:

-

Код:

01

00bb

bfff

ffff

Описание:

Обнуляется бит 'b' в регистре 'f'

Слов:

1

Циклов:

1

Пример:

BCF

FLAG_REG,7

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

W FLAG_REG = 0xC7

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

W FLAG_REG = 0x47

BSF

Установить бит в регистре f в состояние 1

Синтаксис:

[label]

BSF

F,b

Операнды:

0 ≤ f ≤ 127

0 ≤ b ≤ 7

Операция:

1→f,<b>

Изменяемые биты состояния:

-

Код:

01

01bb

bfff

ffff

Описание:

Устанавливается в '1' бит 'b' в регистре 'f'

Слов:

1

Циклов:

1

Пример:

BSF

FLAG_REG,7

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

W FLAG_REG = 0x0A

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

W FLAG_REG = 0x8A

BTFSC

Проверить бит в регистре f; переход, если бит = 0

Синтаксис:

[label]

BTFSC

F,b

Операнды:

0 ≤ f ≤ 127

0 ≤ b ≤ 7

Операция:

Пропуск команды, если (f,<b>)=0

Изменяемые биты состояния:

Z

Код:

01

10bb

bfff

ffff

Описание:

если бит 'b' в регистре 'f'=0, следующая команда пропускается

Слов:

1

Циклов:

1(2)

Пример:

HERE

BTFSC

FLAG,1

FALSE

GOTO

PROCESS_CODE

TRUE

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

PC = address HERE

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

если FLAG<1> = 0

PC = address TRUE

Если FLAG<1> = 1

PC = address FALSE

BTFSS

Проверить бит в регистре f; переход, если бит = 1

Синтаксис:

[label]

BTFSS

F,b

Операнды:

0 ≤ f ≤ 127

0 ≤ b ≤ 7

Операция:

Пропуск команды, если (f,<b>)=1

Изменяемые биты состояния:

Z

Код:

01

11bb

bfff

ffff

Описание:

если бит 'b' в регистре 'f'=1, следующая команда пропускается

Слов:

1

Циклов:

1(2)

Пример:

HERE

BTFSS

FLAG,1

FALSE

GOTO

PROCESS_CODE

TRUE

·

·

·

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

PC = address HERE

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

если FLAG<1> = 0

PC = address FALSE

Если FLAG<1> = 1

PC = address TRUE

CALL

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

Синтаксис:

[label]

CALL

k

Операнды:

0 ≤ k ≤ 2047

Операция:

(PC)+1→TOS,

k→(PC<10:0>),

(PCLATH<4:3>→(PC<12:11>)

Изменяемые биты состояния:

-

Код:

10

0kkk

kkkk

kkkk

Описание:

Вызов подпрограммы. Вначале адрес (PC+1) записывается в вершину стека; затем в биты <10:0> счетчика команд подставляется значение константыk; старшие биты считываются изPCLATH.

Команда выполняется в течение двух циклов

Слов:

1

Циклов:

2

Пример:

HERE

CALL

THERE

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

PC = address HERE

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

PC = address THERE

TOS = address HERE

CLRF

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

Синтаксис:

[label]

CLRF

f

Операнды:

0 ≤ f ≤ 127

Операция:

00h→(f)

1 →Z

Изменяемые биты состояния:

Z

Код:

00

0001

1fff

ffff

Описание:

Обнуляется регистр fи бит нуляZустанавливается в 1

Слов:

1

Циклов:

1

Пример:

CLRF

FLAG_REG

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

FLAG_REG = 0x5A

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

FLAG_REG = 0x00

Z = 1

CLRW

Обнуление регистра W

Синтаксис:

[label]

CLRW

Операнды:

-

Операция:

00h→(W)

1 →Z

Изменяемые биты состояния:

Z

Код:

00

0001

0000

0011

Описание:

Обнуляется регистр W и бит нуля Z устанавливается в 1

Слов:

1

Циклов:

1

Пример:

CLRW

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

W = 0x5A

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

W = 0x00

Z = 1

CLRWDT

Обнуление сторожевого таймера WDT

Синтаксис:

[label]

CLRWDT

Операнды:

-

Операция:

00h→(WDT)

0 → WDT prescaler

1 →

1 →

Изменяемые биты состояния:

,

Код:

00

0000

0110

0100

Описание:

Сбрасывается регистр WDTи предделитель. Биты и регистра статуса устанавливаются в '1'.

Слов:

1

Циклов:

1

Пример:

CLRWDT

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

WDT = ?

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

WDT counter = 0x00

WDT prescaler = 0x00

= 1

= 1

COMF

Инвертирование регистра f

Синтаксис:

[label]

COMF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f) → (dest)

Изменяемые биты состояния:

Z

Код:

00

1001

dfff

ffff

Описание:

Инвертируется содержимое регистра 'f'.

Если 'd' = 0, результат помещается в регистрW.

Если 'd' = 1, результат помещается в регистр 'f'.

Слов:

1

Циклов:

1

Пример:

COMF

REG1,0

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

REG1 = 0x13

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

REG1 = 0x13

W = 0xEC

DECF

Декремент регистра f

Синтаксис:

[label]

DECF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f)-1 → (dest)

Изменяемые биты состояния:

Z

Код:

00

0011

dfff

ffff

Описание:

Содержимое регистра 'f' уменьшается на 1.

Если 'd' = 0, результат помещается в регистрW.

Если 'd' = 1, результат помещается в регистр 'f'.

Слов:

1

Циклов:

1

Пример:

DECF

CNT,1

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

CNT = 0x01

Z = 0

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

CNT = 0x00

Z = 1

DECFSZ

Декремент регистра f; пропуск если 0

Синтаксис:

[label]

DECFSZ

f,d

Операнды:

0 ≤ f ≤ 127

d Î[0,1]

Операция:

(f)-1 → (dest), пропуск следующей команды, если результат = 0

Изменяемые биты состояния:

-

Код:

00

1011

dfff

ffff

Описание:

Содержимое регистра 'f' уменьшается на 1.

Если 'd' = 0, результат помещается в регистрW.

Если 'd' = 1, результат помещается в регистр 'f'.

Если результат = 0, следующая команда выполняется как NOP.

Слов:

1

Циклов:

1(2)

Пример:

THERE

CONTINUE

DECFSZ

GOTO

·

·

·

CNT,1

LOOP

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

PC = address HERE

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

CNT = CNT-1

Если CNT = 0,

PC = address CONTINUE

Если CNT ≠ 0,

PC = address HERE+1

GOTO

Передать управление по адресу

Синтаксис:

[label]

GOTO

k

Операнды:

0 ≤ k ≤ 2047

Операция:

k→(PC<10:0>),

(PCLATH<4:3>)→(PC<12:11>)

Изменяемые биты состояния:

-

Код:

10

1kkk

kkkk

kkkk

Описание:

Передача управления по адресу, заданному константой k. Для этого в разряды <10:0> счетчика команд подставляется значение константыk; старшие биты считываются изPCLATH.

Команда выполняется в течение двух циклов

Слов:

1

Циклов:

2

Пример:

GOTO

THERE

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

PC = address THERE

INCF

Инкремент регистра f

Синтаксис:

[label]

INCF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f)+1 → (dest)

Изменяемые биты состояния:

Z

Код:

00

1010

dfff

ffff

Описание:

Содержимое регистра 'f' увеличивается на 1.

Если 'd' = 0, результат помещается в регистрW.

Если 'd' = 1, результат помещается в регистр 'f'.

Слов:

1

Циклов:

1

Пример:

INCF

CNT,1

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

CNT = 0xFF

Z = 0

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

CNT = 0x00

Z = 1

INCFSZ

Инкремент регистра f, пропуск если 0

Синтаксис:

[label]

INCFSZ

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f)+1 → (dest), пропуск следующей команды, если результат = 0

Изменяемые биты состояния:

-

Код:

00

1111

dfff

ffff

Описание:

Содержимое регистра 'f' увеличивается на 1.

Если 'd' = 0, результат помещается в регистрW.

Если 'd' = 1, результат помещается в регистр 'f'.

Если результат = 0, следующая команда выполняется как NOP.

Слов:

1

Циклов:

1(2)

Пример:

HERE

CONTINUE

DECFSZ

GOTO

·

·

·

CNT,1

LOOP

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

PC = address HERE

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

CNT = CNT+1

Если CNT = 0,

PC = address CONTINUE

Если CNT ≠ 0,

PC = address HERE+1

IORLW

Дизъюнкция константы kи регистра W

Синтаксис:

[label]

IORLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

(W) ИЛИ (k)→(W)

Изменяемые биты состояния:

Z

Код:

11

1000

kkkk

kkkk

Описание:

Производится дизъюнкция константы kи регистраW

результат помещается в регистр W

Слов:

1

Циклов:

1

Пример:

IORLW

0x35

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

W = 0x9A

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

W = 0xBF

IORWF

Дизъюнкция регистра 'f' и регистра W

Синтаксис:

[label]

IORWF

F,d

Операнды:

0 ≤ k ≤ 127

d Î [0,1]

Операция:

(W) ИЛИ (f)→(dest)

Изменяемые биты состояния:

Z

Код:

00

0100

dfff

ffff

Описание:

Производится конъюнкция содержимого регистра 'f' и регистраW

если d=0, результат помещается в регистрW,

если d=1, результат помещается в регистрf

Слов:

1

Циклов:

1

Пример:

IORWF

RESULT,0

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

RESULT = 0x13

W = 0x91

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

RESULT = 0x13

W = 0x93

MOVLW

Засылка константы kв регистр W

Синтаксис:

[label]

IORLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

(k)→(W)

Изменяемые биты состояния:

-

Код:

11

00хх

kkkk

kkkk

Описание:

Производится засылка константы kв регистрW

Слов:

1

Циклов:

1

Пример:

MOVLW

0x35

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

W = 0x35

MOVF

Пересылка регистра f

Синтаксис:

[label]

MOVF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f)→(dest)

Изменяемые биты состояния:

Z

Код:

00

1000

dfff

ffff

Описание:

Производится пересылка содержимого регистра 'f':

если d=0 содержимое регистра 'f'помещается в регистр W,

если d=1 содержимое регистра 'f'помещается в регистрf

Слов:

1

Циклов:

1

Пример:

MOVF

FSR,0

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

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

MOVWF

Пересылка регистра W в регистр f

Синтаксис:

[label]

MOVWF

f,d

Операнды:

0 ≤ f ≤ 127

Операция:

(W)→(f)

Изменяемые биты состояния:

-

Код:

00

0000

1fff

ffff

Описание:

Производится пересылка содержимого регистра Wв регистрf

Слов:

1

Циклов:

1

Пример:

MOVWF

OPTION

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

OPTION = 0xFF

W = 0x4F

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

OPTION = 0x4F

W = 0x4F

NOP

Нет операции

Синтаксис:

[label]

NOP

Операнды:

-

Операция:

-

Изменяемые биты состояния:

-

Код:

00

0000

0xx0

0000

Описание:

Операций не производится

Слов:

1

Циклов:

1

Пример:

NOP

OPTION

Загрузка в регистр OPTION

Синтаксис:

[label]

MOVWF

f,d

Операнды:

-

Операция:

(W)→OPTION

Изменяемые биты состояния:

-

Код:

00

0000

0110

0010

Описание:

Производится загрузка регистра Wв регистрOPTION

Слов:

1

Циклов:

1

Пример:

Примечание:

Команда не рекомендуется к использованию

RETRFIE

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

Синтаксис:

[label]

RETRFIE

Операнды:

-

Операция:

(TOS) → (PC)

1 → GIE

Изменяемые биты состояния:

-

Код:

00

0000

0000

1001

Описание:

Производится засылка вершины стека (TOS) в счетчик команд (PC) ) – адрес возврата. Разрешается прерывание путем установки триггера разрешения прерывания (GIE).

Слов:

1

Циклов:

2

Пример:

RETFIE

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

PC = TOS

GIE = 1

RETLW

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

Синтаксис:

[label]

RETLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

K → (W

TOS → (PC)

Изменяемые биты состояния:

-

Код:

11

01xx

kkkk

kkkk

Описание:

Регистр Wзагружается константой 'k'.

Производится засылка вершины стека (TOS) в счетчик команд (PC) – адрес возврата.

Слов:

1

Циклов:

2

Пример:

TABLE

CALL

ADDWF

RETLW

RETLW

RETLW

RETLW

TABLE

PC

k1

k2

k3

kn

;Начало таблицы

;

;конец таблицы

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

W = 0x07

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

W = величина k7

RETURN

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

Синтаксис:

[label]

RETURN

Операнды:

-

Операция:

(TOS) → (PC)

Изменяемые биты состояния:

-

Код:

00

0000

0000

1000

Описание:

Производится засылка вершины стека (TOS) в счетчик команд (PC) – адрес возврата

Слов:

1

Циклов:

2

Пример:

RETURN

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

PC = TOS

RLF

Сдвиг влево регистра 'f' с присоединениемCarry

Синтаксис:

[label]

RLF

f,d

Операнды:

0 ≤ k ≤ 127

d Î [0,1]

Операция:

Смотри описание далее

Изменяемые биты состояния:

C

Код:

00

1101

dfff

ffff

Описание:

Производится сдвиг влево содержимого регистра с присоединением флага переноса Carry (бита 0 регистра статуса)

если d=0, результат помещается в регистр W,

если d=1, результат помещается в регистр f

Слов:

1

Циклов:

1

Пример:

RLF

REG1,0

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

REG1 = 1110 0110

C = 0

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

REG1 = 1110 0110

W = 1100 1100

C = 1

RRF

Сдвиг вправо регистра 'f' с присоединениемCarry

Синтаксис:

[label]

RRF

f,d

Операнды:

0 ≤ k ≤ 127

d Î [0,1]

Операция:

Смотри описание далее

Изменяемые биты состояния:

C

Код:

00

1100

dfff

ffff

Описание:

Производится сдвиг вправо содержимого регистра с присоединением флага переноса Carry (бита 0 регистра статуса)

если d=0, результат помещается в регистр W,

если d=1, результат помещается в регистр f

Слов:

1

Циклов:

1

Пример:

RLF

REG1,0

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

REG1 = 1110 0110

C = 1

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

REG1 = 1110 0110

W = 1111 0011

C = 0

SLEEP

Переход в режим пониженного потребления

Синтаксис:

[label]

SLEEP

Операнды:

-

Операция:

00h→(WDT)

0 → WDT prescaler

1 →

0 →

Изменяемые биты состояния:

,

Код:

00

0000

0110

0011

Описание:

Бит регистра статуса устанавливается в '0'.

Бит регистра статуса устанавливается в '1'.

Сторожевой таймер WDT и предделитель устанавливаются в 0.

Процессор переходит в режим SLEEP.

Слов:

1

Циклов:

1

Пример:

SLEEP

SUBLW

Вычесть из константы регистр W

Синтаксис:

[label]

SUBLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

k-(W)→(W)

Изменяемые биты состояния:

C, DC, Z

Код:

11

110х

kkkk

kkkk

Описание:

Регистр W вычитается из значения 'k' и результат помещается в регистр W

Слов:

1

Циклов:

1

Пример 1:

SUBLW

0х02

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

W = 0x01

C = ?

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

W = 0x01

C = 1

;Результат положительный

Пример 2:

SUBLW

0х02

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

W = 0x02

C = ?

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

W = 0x00

C = 1

;Результат ноль

Пример 3:

SUBLW

0х02

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

W = 0x03

C = ?

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

W = 0xFF

C = 0

;Результат отрицательный

SUBWF

Вычесть регистр W из регистра f

Синтаксис:

[label]

SUBWF

F,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f)-(W)→(dest)

Изменяемые биты состояния:

C, DC, Z

Код:

00

0010

dfff

ffff

Описание:

Из содержимого регистра fвычитается значение регистра W;

если d=0, результат помещается в регистр W,

если d=1, результат помещается в регистр f

Слов:

1

Циклов:

1

Пример 1:

SUBWF

REG1,1

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

REG1 = 3

W = 2

C = ?

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

REG1 = 1

W = 2

C = 1

;Результат положительный

Пример 2:

SUBWF

REG1,1

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

REG1 = 2

W = 2

C = ?

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

REG1 = 0

W = 2

C = 1

;Результат ноль

Пример 3:

SUBWF

REG1,1

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

REG1 = 1

W = 2

C = ?

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

REG1 = FF

W = 2

C = 0

;Результат отрицательный

SWAPF

Обмен местами тетрад в регистре f

Синтаксис:

[label]

SWAPF

f,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(f<3:0>)→(dest<7:4>)

(f<7:4>)→(dest<3:0>)

Изменяемые биты состояния:

-

Код:

00

1110

dfff

ffff

Описание:

Старшая и младшая тетрады регистра fобмениваются местами;

если d=0, результат помещается в регистр W,

если d=1, результат помещается в регистр f

Слов:

1

Циклов:

1

Пример:

SWAPF

REG,0

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

REG = 0xA5

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

REG = 0xA5

W = 0x5A

TRIS

Загрузка регистра TRIS

Синтаксис:

[label]

TRIS

f

Операнды:

5 ≤ f ≤ 7

Операция:

(W)→регистр TRIS (f)

Изменяемые биты состояния:

-

Код:

00

0000

0110

0fff

Описание:

Записывается значение регистра Wв регистры управления портами TRISA, TRISB, TRISC

Слов:

1

Циклов:

1

Примечание:

Команда не рекомендуется к использованию

XORLW

Исключающее ИЛИ константы kи регистра W

Синтаксис:

[label]

ADDLW

k

Операнды:

0 ≤ k ≤ 255

Операция:

(W) XOR k→(W)

Изменяемые биты состояния:

Z

Код:

11

1010

kkkk

kkkk

Описание:

Производится операция ИСКЛЮЧАЮЩЕЕ ИЛИ между содержимым регистра W и константой k; результат помещается в регистр W

Слов:

1

Циклов:

1

Пример:

XORLW

0хAF

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

W = 0xB5

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

W = 0x1A

XORWF

Исключающее ИЛИ регистров W и f

Синтаксис:

[label]

XORWf

F,d

Операнды:

0 ≤ f ≤ 127

d Î [0,1]

Операция:

(W) XOR (f)→(dest)

Изменяемые биты состояния:

Z

Код:

00

0110

dfff

ffff

Описание:

Производится операция ИСКЛЮЧАЮЩЕЕ ИЛИ между содержимым регистров W и f;

если d=0, результат помещается в регистр W,

если d=1, результат помещается в регистр f

Слов:

1

Циклов:

1

Пример:

XORWF

REG,1

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

REG = 0xAF

W = 0xB5

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

REG = 0x1A

W = 0xB5

Кроме описанных команд ассемблер MPASM воспринимает и ассемблирует команды, мнемоника которых приведена в табл. 7.2.2.

Таблица 7.2.2

Мнемоника специальных инструкций

Мнемоническое обозначение

Mnemonic

Description

Описание

Equivalent Operation(s)

Эквивалентные операции

Status

Устанавливаемые флаги регистра состояния

ADDCF

f,d

Add Carry to File

Добавление бита переноса к f

BTFSC

INCF

3,0

f,d

Z

ADDDCF

f,d

Add Digit Carry to File

Добавление бита десятичного переноса к f

BTFSC

INCF

3,1

f,d

Z

B

k

Branch

Ветвление

GOTO

k

BC

k

Branch on Carry

Ветвление по значению переноса “1”

BTFSC

GOTO

3,0

k

BDC

k

Branch on Digit Carry

Ветвление по значению десятичного переноса “1”

BTFSC

GOTO

3,1

k

BNC

k

Branch on No Carry

Ветвление по значению переноса “0”

BTFSS

GOTO

3,0

k

BNDC

k

Branch on No Digit Carry

Ветвление по значению десятичного переноса “0”

BTFSS

GOTO

3,1

k

BNZ

k

Branch on No Zero

Ветвление по значению флага нуля “0”

BTFSS

GOTO

3,2

k

BZ

k

Branch on Zero

Ветвление по значению флага нуля “1”

BTFSC

GOTO

3,2

k

CLRC

Clear Carry

Очистить перенос

BCF

3,0

CLRDC

Clear Digit Carry

Очистить десятичный перенос

BCF

3,1

CLRZ

Clear Zero

Очистить флаг нуля

BCF

3,2

LCALL

k

LGOTO

k

MOVFW

f

Move File to W

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

MOVF

f,0

Z

NEGF

f,d

Negate File

Вычислить дополнение f

COMF

INCF

f,1

f,d

Z

Таблица 7.2.2 (продолжение)

SETC

Set Carry

Установить в ”1” Carry

BSF

3,0

SETDC

Set Digit Carry

Установить в ”1”

BSF

3,1

SETZ

Set Zero

Установить в ”1”

BSF

3,2

SKPC

Skip on Carry

Пропуск команды, если Carry = 1

BTFSS

3,0

SKPDC

Skip on Digit Carry

Пропуск команды, если Digit Carry = 1

BTFSS

3,1

SKPNC

Skip on No Carry

Пропуск команды, если Carry = 0

BTFSC

3,0

SKPNDC

Skip on No Digit Carry

Пропуск команды, если Digit Carry = 0

BTFSC

3,1

SKPNZ

Skip on Non Zero

Пропуск команды, если Zero = 0

BTFSC

3,2

SKPZ

Skip on Zero

Пропуск команды, если Zero = 1

BTFSS

3,2

SUBCF

f,d

Subtract Carry from File

Вычитание – f – Carry

BTFSC

DECF

3,0

f,d

Z

SUBDCF

f,d

Subtract Digit Carry from File

Вычитание – f – Digit Carry

BTFSC

DECF

3,1

f,d

Z

TSTF

f

Test File

Zero := 1, если f = 0

MOVF

f,1

Z