
2002 Microchip Technology Inc.
Preliminary
DS40044A-page 115
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 instruc-
tion fetched during the current
instruction execution, is discarded
and a
NOP
is executed instead,
making this a two-cycle instruc-
tion.
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 =
if FLAG<1> = 1,
PC =
address
FALSE
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 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
After Instruction
PC
TOS =
=
Address
HERE
=
Address
THERE
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
After Instruction
REG1
Z
=
0x5A
=
=
0x00
1