Pic16f648a

Page 123

PIC16F627A/628A/648A DECFSZ

Decrement f, Skip if 0

GOTO

Unconditional Branch

Syntax:

[ label ] DECFSZ f,d

Syntax:

[ label ]

Operands:

0 ≤ f ≤ 127 d ∈ [0,1]

Operands:

0 ≤ k ≤ 2047

Operation:

(f) - 1 → (dest); 0

Operation:

k → PC<10:0> PCLATH<4:3> → PC<12:11>

Status Affected:

None

Status Affected:

None

Encoding:

Encoding:

10

00

Description:

The contents of register ‘f’ are decremented. 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.

Description:

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.

Words:

1

Cycles:

2

Example

GOTO THERE

Words:

1011

skip if result =

dfff

ffff

1(2)

Example

HERE

DECFSZ GOTO CONTINUE • • •

1kkk

kkkk

kkkk

After Instruction PC = Address THERE

1

Cycles:

GOTO k

REG1, 1 LOOP

Before Instruction PC = address HERE After Instruction REG1 = REG1 - 1 if REG1 = 0, PC = address CONTINUE if REG1 ≠ 0, PC = address HERE+1

© 2006 Microchip Technology Inc.

DS40044E-page 121


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.