PIC18F010/020
GOTO
Unconditional Branch
Syntax:
[ label ] GOTO k
Operands:
0 ≤ k ≤ 1048575
Operation:
k → PC<20:1>
Status Affected: None
Encoding:
1st word (k<7:0>) 1110
2nd word(k<19:8>) 1111
1111 k7kkk
k19kkk kkkk
kkkk0
kkkk8
Description:
GOTO allows an unconditional
branch anywhere within entire 2M
byte memory range. The 20-bit
value ’k’ is loaded into PC<20:1>.
GOTO is always a two-cycle
instruction.
Words:
2
Cycles:
2
Q Cycle Activity:
Q1
Q2
Decode
Read literal
’k’<7:0>,
No
operation
No
operation
Q3
No
operation
No
operation
Q4
Read literal
’k’<19:8>,
Write to PC
No
operation
Example:
GOTO THERE
After Instruction
PC = Address (THERE)
INCF
Increment f
Syntax:
[ label ] INCF f [ ,d [,a] ]
Operands:
0 ≤ f ≤ 255
d ∈ [0,1]
a ∈ [0,1]
Operation:
(f) + 1 → dest
Status Affected: C,DC,N,OV,Z
Encoding:
0010 10da ffff ffff
Description:
The contents of register ’f’ are
incremented. If ’d’ is 0, the result is
placed in WREG. If ’d’ is 1, the
result is placed back in register ’f’
(default). If ’a’ is 0, the Access
Bank will be selected, overriding
the BSR value. If ’a’ is 1, the Bank
will be selected as per the BSR
value.
Words:
1
Cycles:
1
Q Cycle Activity:
Q1
Decode
Q2
Read
register ’f’
Q3
Process
Data
Q4
Write to
destination
Example:
INCF
CNT
Before Instruction
CNT = 0xFF
Z
=0
C
=?
DC
=?
After Instruction
CNT =
Z
=
C
=
DC
=
0x00
1
1
1
DS41142A-page 116
Preliminary
2001 Microchip Technology Inc.