
PIC16F8X
1998 Microchip Technology Inc.
DS30430C-page 59
BTFSS
Bit Test f, Skip if Set
Syntax:
[
label] BTFSS f,b
Operands:
0
≤ f ≤ 127
0
≤ b < 7
Operation:
skip if (f<b>) = 1
Status Affected:
None
Encoding:
01
11bb
bfff
ffff
Description:
If bit ’b’ in register ’f’ is ’0’ then the next
instruction is executed.
If bit ’b’ is ’1’, then the next instruction is
discarded and a NOP is executed
instead, making this a 2TCY instruction.
Words:
1
Cycles:
1(2)
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register ’f’
Process
data
No-Operat
ion
If Skip:
(2nd Cycle)
Q1
Q2
Q3
Q4
No-Operat
ion
No-Operati
on
No-Opera
tion
No-Operat
ion
Example
HERE
FALSE
TRUE
BTFSC
GOTO
FLAG,1
PROCESS_CODE
Before Instruction
PC =
address
HERE
After Instruction
if FLAG<1> = 0,
PC =
address FALSE
if FLAG<1> = 1,
PC =
address TRUE
CALL
Call Subroutine
Syntax:
[
label ] CALL k
Operands:
0
≤ k ≤ 2047
Operation:
(PC)+ 1
→ TOS,
k
→ PC<10:0>,
(PCLATH<4:3>)
→ PC<12:11>
Status Affected:
None
Encoding:
10
0kkk
kkkk
Description:
Call Subroutine. First, return address
(PC+1) is pushed onto the stack. The
eleven bit immediate address is loaded
into PC bits <10:0>. The upper bits of
the PC are loaded from PCLATH. CALL
is a two cycle instruction.
Words:
1
Cycles:
2
Q Cycle Activity:
Q1
Q2
Q3
Q4
1st Cycle
Decode
Read
literal ’k’,
Push PC
to Stack
Process
data
Write to
PC
2nd Cycle
No-Opera
tion
No-Opera
tion
No-Opera
tion
No-Operat
ion
Example
HERE
CALL
THERE
Before Instruction
PC = Address HERE
After Instruction
PC = Address THERE
TOS = Address HERE+1