PIC16C925/926
BTFSS
Bit Test f, Skip if Set
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
[ label ] BTFSS f [,b]
0 ≤ f ≤ 127
0≤b<7
skip if (f<b>) = 1
None
01
11bb bfff ffff
If bit ’b’ in register ’f’ is ’0’, then the
next instruction is executed.
If bit ’b’ is ’1’, then the next instruc-
tion is discarded and a NOP is exe-
cuted instead, making this a 2TCY
instruction.
Words:
1
Cycles:
Q Cycle Activity:
1(2)
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> =
PC
=
if FLAG<1> =
PC
=
0,
address FALSE
1,
address TRUE
CALL
Call Subroutine
Syntax:
Operands:
Operation:
Status Affected:
[ label ] CALL k
0 ≤ k ≤ 2047
(PC)+ 1→ TOS,
k → PC<10:0>,
(PCLATH<4:3>) → PC<12:11>
None
Encoding:
Description:
10
0kkk kkkk kkkk
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:
Q Cycle Activity:
1st Cycle
2nd Cycle
2
Q1
Q2
Q3
Q4
Decode
Read
literal ’k’,
Push PC
to Stack
Process
data
Write to
PC
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
DS39544A-page 118
Preliminary
2001 Microchip Technology Inc.