PIC16C505
BSF
Bit Set f
Syntax:
[ label ] BSF f,b
Operands:
0 ≤ f ≤ 31
0≤b≤7
Operation:
1 → (f<b>)
Status Affected: None
Encoding:
0101 bbbf ffff
Description:
Bit ’b’ in register ’f’ is set.
Words:
1
Cycles:
1
Example:
BSF
FLAG_REG, 7
Before Instruction
FLAG_REG = 0x0A
After Instruction
FLAG_REG = 0x8A
BTFSC
Bit Test f, Skip if Clear
Syntax:
[ label ] BTFSC f,b
Operands:
0 ≤ f ≤ 31
0≤b≤7
Operation:
skip if (f<b>) = 0
Status Affected: None
Encoding:
0110 bbbf ffff
Description:
If bit ’b’ in register ’f’ is 0, then the
next instruction is skipped.
If bit ’b’ is 0, then the next instruc-
tion fetched during the current
instruction execution is discarded,
and a NOP is executed instead,
making this a 2 cycle instruction.
Words:
1
Cycles:
1(2)
Example:
HERE
FALSE
TRUE
BTFSC
GOTO
•
•
•
FLAG,1
PROCESS_CODE
Before Instruction
PC
= address (HERE)
After Instruction
if FLAG<1> =
PC
=
if FLAG<1> =
PC
=
0,
address (TRUE);
1,
address(FALSE)
BTFSS
Bit Test f, Skip if Set
Syntax:
[ label ] BTFSS f,b
Operands:
0 ≤ f ≤ 31
0≤b<7
Operation:
skip if (f<b>) = 1
Status Affected: None
Encoding:
0111 bbbf ffff
Description:
If bit ’b’ in register ’f’ is ’1’, then the
next instruction is skipped.
If bit ’b’ is ’1’, then the next instruc-
tion fetched during the current
instruction execution, is discarded
and a NOP is executed instead,
making this a 2 cycle instruction.
Words:
1
Cycles:
1(2)
Example:
HERE BTFSS
FALSE GOTO
TRUE •
•
•
FLAG,1
PROCESS_CODE
Before Instruction
PC
= address (HERE)
After Instruction
If FLAG<1> =
PC
=
if FLAG<1> =
PC
=
0,
address (FALSE);
1,
address (TRUE)
DS40192C-page 42
© 1999 Microchip Technology Inc.