PIC16F5X
All instructions are executed within one single instruc-
tion cycle, unless a conditional test is true or the
program counter is changed as a result of an instruc-
tion. In this case, the execution takes two instruction
cycles. One instruction cycle consists of four oscillator
periods. Thus, for an oscillator frequency of 4 MHz, the
normal instruction execution time would be 1 μs. If a
conditional test is true or the program counter is
changed as a result of an instruction, the instruction
execution time would be 2 μs.
9.0
INSTRUCTION SET SUMMARY
Each PIC16F5X instruction is a 12-bit word divided into
an opcode, which specifies the instruction type, and
one or more operands which further specify the opera-
tion of the instruction. The PIC16F5X instruction set
summary in Table 9-2 groups the instructions into byte-
oriented, bit-oriented, and literal and control opera-
tions. Table 9-1 shows the opcode field descriptions.
For byte-oriented instructions, ‘f’ represents a file
register designator and ‘d’ represents a destination
designator. The file register designator is used to
specify which one of the 32 file registers in that bank is
to be used by the instruction.
Figure 9-1 shows the three general formats that the
instructions can have. All examples in the figure use
the following format to represent a hexadecimal
number:
The destination designator specifies where the result of
the operation is to be placed. If ‘d’ is ‘0’, the result is
placed in the W register. If ‘d’ is ‘1’, the result is placed
in the file register specified in the instruction.
0xhhh
where ‘h’ signifies a hexadecimal digit.
FIGURE 9-1:
GENERAL FORMAT FOR
INSTRUCTIONS
For bit-oriented instructions, ‘b’ represents a bit field
designator which selects the number of the bit affected
by the operation, while ‘f’ represents the number of the
file in which the bit is located.
Byte-oriented file register operations
11
6
5
d
4
0
OPCODE
f (FILE #)
For literal and control operations, ‘k’ represents an
8- or 9-bit constant or literal value.
d = 0for destination W
d = 1for destination f
f = 5-bit file register address
Bit-oriented file register operations
11 8 7
b (BIT #)
TABLE 9-1:
OPCODE FIELD
DESCRIPTIONS
5
4
0
Field
Description
OPCODE
f (FILE #)
f
W
b
k
x
Register file address (0x00 to 0x1F)
Working register (accumulator)
Bit address within an 8-bit file register
Literal field, constant data or label
Don't care location (= 0or 1)
The assembler will generate code with
x = 0. It is the recommended form of use
for compatibility with all Microchip
software tools.
b = 3-bit bit address
f = 5-bit file register address
Literal and control operations (except GOTO)
11
8
7
0
OPCODE
k (literal)
k = 8-bit immediate value
Literal and control operations - GOTOinstruction
11 0
d
Destination select;
9
8
d = 0(store result in W)
d = 1(store result in file register ‘f’)
Default is d = 1
Label name
OPCODE
k (literal)
k = 9-bit immediate value
label
TOS
PC
Top-of-Stack
Program Counter
WDT
Watchdog Timer Counter
TO
Time-out bit
PD
Power-down bit
dest
Destination, either the W register or the
specified register file location
Options
[
(
]
)
Contents
→
Assigned to
< >
Register bit field
In the set of
∈
italics User defined term
© 2007 Microchip Technology Inc.
DS41213D-page 41