Datasheet
PIC16F627A/628A/648A
DS40044G-page 128 © 2009 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
register. 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: [ label ] 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 Status bit,
TO
is set. Watchdog Timer and
its prescaler are cleared.
The processor is put into Sleep
mode with the oscillator
stopped. See Section 14.8
“Power-Down Mode (Sleep)”
for more details.
Words: 1
Cycles: 1
Example
:
SLEEP
REGISTER FC
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= 3
C= ?
After Instruction
W= 0xFF
C = 0; result is negative