Datasheet
PIC17C7XX
DS30289C-page 212 1998-2013 Microchip Technology Inc.
DCFSNZ Decrement f, skip if not 0
Syntax: [label] DCFSNZ f,d
Operands: 0 f 255
d [0,1]
Operation: (f) – 1 (dest);
skip if not 0
Status Affected: None
Encoding:
0010 011d ffff ffff
Description:
The contents of register 'f' are decre-
mented. If 'd' is 0, the result is placed in
WREG. If 'd' is 1, the result is placed
back in register 'f'.
If the result is not 0, the next instruc-
tion, which is already fetched is dis-
carded and a NOP is executed instead,
making it a two-cycle instruction.
Words: 1
Cycles: 1(2)
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register 'f'
Process
Data
Write to
destination
If skip:
Q1 Q2 Q3 Q4
No
operation
No
operation
No
operation
No
operation
Example:
HERE DCFSNZ TEMP, 1
ZERO :
NZERO :
Before Instruction
TEMP_VALUE = ?
After Instruction
TEMP_VALUE = TEMP_VALUE - 1,
If TEMP_VALUE = 0;
PC = Address (ZERO)
If TEMP_VALUE 0;
PC = Address (NZERO)
GOTO Unconditional Branch
Syntax: [ label ] GOTO k
Operands: 0 k 8191
Operation: k PC<12:0>;
k<12:8> PCLATH<4:0>,
PC:13> PCLATH<7:5>
Status Affected: None
Encoding:
110k kkkk kkkk kkkk
Description:
GOTO allows an unconditional branch
anywhere within an 8K page boundary.
The thirteen-bit immediate value is
loaded into PC bits <12:0>. Then the
upper eight bits of PC are loaded into
PCLATH. GOTO is always a two-cycle
instruction.
Words: 1
Cycles: 2
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read literal
'k'
Process
Data
Write to PC
No
operation
No
operation
No
operation
No
operation
Example:
GOTO THERE
After Instruction
PC = Address (THERE)