
PIC16F627A/628A/648A
DS40044A-page 122
Preliminary
2002 Microchip Technology Inc.
RRF
Rotate Right f through Carry
Syntax:
[
label
] RRF f,d
Operands:
0
≤
f
≤
127
d
∈
[0,1]
Operation:
See description below
Status Affected:
C
Encoding:
00
1100
dfff
ffff
Description:
The contents of register 'f' are
rotated one bit to the right
through the Carry Flag. If 'd' is 0
the result is placed in the W reg-
ister. If 'd' is 1 the result is
placed back in register 'f'.
Words:
1
Cycles:
1
Example
RRF
REG1, 0
Before Instruction
REG1
= 1110 0110
C
= 0
After Instruction
REG1
= 1110 0110
W
= 0111 0011
C
= 0
SLEEP
Syntax:
[
labe
l ]
SLEEP
Operands:
None
Operation:
00h
→
WDT,
0
→
WDT prescaler,
1
→
TO,
0
→
PD
Status Affected:
TO, PD
Encoding:
00
0000
0110
0011
Description:
The power-down STATUS bit,
PD is cleared. Time out STA-
TUS bit, TO is set. Watchdog
Timer and its prescaler are
cleared.
The processor is put into
SLEEP mode with the oscilla-
tor stopped. See Section 14.8
for more details.
Words:
1
Cycles:
1
Example:
SLEEP
REGISTER F
C
SUBLW
Subtract W from Literal
Syntax:
[
label
]
SUBLW k
Operands:
0
≤
k
≤
255
Operation:
k - (W)
→ (
W)
Status
Affected:
C, DC, Z
Encoding:
11
110x
kkkk
kkkk
Description:
The W register is subtracted (2’s
complement method) from the eight
bit literal 'k'. The result is placed in
the W register.
Words:
1
Cycles:
1
Example 1:
SUBLW
0x02
Before Instruction
W = 1
C
=
After Instruction
W = 1
C = 1; result is positive
Example 2:
Before Instruction
W = 2
C =
After Instruction
W = 0
C = 1; result is zero
Example 3:
Before Instruction
W =
C =
3
After Instruction
W =
C =
0xFF
0; result is negative