PIC16C9XX
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 Process
No-
register 'f' data Operation
If Skip: (2nd Cycle)
Q1
Q2
Q3
Q4
No-
No-
No-
No-
Operation Operation Operation Operation
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 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-
No-
No-
No-
Operation Operation Operation Operation
Example
HERE CALL THERE
Before Instruction
PC = Address HERE
After Instruction
PC = Address THERE
TOS = Address HERE+1
DS30444E - page 124
© 1997 Microchip Technology Inc.