PIC16C8X
GOTO
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Example
Go to address
[ label ] GOTO k
0 ≤ k ≤ 2047
k → (PC<10:0>)
(PCLATH<4:3>) → (PC<12:11>)
None
10 1kkk kkkk kkkk
GOTO is an unconditional branch. The
eleven bit immediate value is loaded
into PC bits <10:0>. The upper bits of
PC are loaded from PCLATH<4:3>.
GOTO is a two cycle instruction.
1
2
GOTO THERE
After Instruction
PC = Address THERE
INCF
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Example
Increment f
[ label ] INCF f,d
0 ≤ f ≤ 127
d ∈ [0,1]
(f) + 1 → (dest)
Z
00 1010 dfff ffff
The contents of register 'f' are incre-
mented. If 'd' is 0 the result is placed
in the W register. If 'd' is 1 the result is
placed back in register 'f'.
1
1
INCF CNT, 1
Before Instruction
CNT =
Z
=
After Instruction
CNT =
Z
=
0xFF
0
0x00
1
INCFSZ
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Example
Increment f, Skip if 0
[ label ] INCFSZ f,d
0 ≤ f ≤ 127
d ∈ [0,1]
(f) + 1 → (dest), skip if result = 0
None
00 1111 dfff ffff
The contents of register 'f' are incre-
mented. If 'd' is 0 the result is placed
in the W register. If 'd' is 1 the result is
placed back in register 'f'.
If the result is 0, the next instruction,
which is already fetched, is discarded.
A NOP is executed instead making it
a two cycle instruction.
1
1(2)
HERE
INCFSZ
1
GOTO
CONTINUE •
•
•
CNT,
LOOP
Before Instruction
PC = addressHERE
After Instruction
CNT = CNT + 1
if CNT = 0,
PC = addressCONTINUE
if CNT≠ 0,
PC = addressHERE +1
IORLW
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Example
Inclusive OR Literal with W
[ label ] IORLW k
0 ≤ k ≤ 255
(W) .OR. (k) → (W)
Z
11 1000 kkkk kkkk
The contents of the W register are
OR’ed to the eight bit literal 'k'. The
result is placed in the W register.
1
1
IORLW 0x35
Before Instruction
W = 0x9A
After Instruction
W = 0xBF
© 1995 Microchip Technology Inc.
DS30081F-page 59