
2009 Microchip Technology Inc.
DS40044G-page 121
PIC16F627A/628A/648A
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 ‘1’, then
the next instruction is skipped.
If bit ‘b’ is ‘1’, then the next
instruction fetched during the
current instruction execution, is
discarded and a NOP is executed
instead, making this a two-cycle
instruction.
Words:
1
Cycles:
1(2)
Example
HERE
FALSE
TRUE
BTFSS
GOTO
REG1
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 imme-
diate 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
Example
HERE
CALL
THERE
Before Instruction
PC
= Address HERE
After Instruction
PC
= Address THERE
TOS = Address HERE+1
CLRF
Clear f
Syntax:
[ label ] CLRF f
Operands:
0
≤ f ≤ 127
Operation:
00h
→ (f)
1
→ Z
Status Affected:
Z
Encoding:
00
0001
1fff
ffff
Description:
The contents of register ‘f’ are
cleared and the Z bit is set.
Words:
1
Cycles:
1
Example
CLRF
REG1
Before Instruction
REG1
= 0x5A
After Instruction
REG1
= 0x00
Z= 1