Microchip Technology MCU PIC PIC18F87K22-I/PTRSL TQFP-80 MCP PIC18F87K22-I/PTRSL Data Sheet

Product codes
PIC18F87K22-I/PTRSL
Page of 550
 2009-2011 Microchip Technology Inc.
DS39960D-page 109
PIC18F87K22 FAMILY
FIGURE 6-9:
COMPARING ADDRESSING OPTIONS FOR BIT-ORIENTED AND 
BYTE-ORIENTED INSTRUCTIONS (EXTENDED INSTRUCTION SET ENABLED) 
EXAMPLE INSTRUCTION:
  ADDWF, f, d, a (Opcode: 0010 01da ffff ffff)
When a = 0 and f 
 60h:
The instruction executes in
Direct Forced mode. ‘f’ is
interpreted as a location in the
Access RAM, between 060h
and FFFh. This is the same as
locations, F60h to FFFh
(Bank 15), of data memory. 
Locations below 060h are not
available in this addressing
mode.
When a = 0 and f
5Fh:
The instruction executes in
Indexed Literal Offset mode. ‘f’
is interpreted as an offset to the
address value in FSR2. The
two are added together to
obtain the address of the target
register for the instruction. The
address can be anywhere in
the data memory space.
Note that in this mode, the
correct syntax is now:
ADDWF [k], d
where ‘k’ is the same as ‘f’.
When a = 1 (all values of f):
The instruction executes in
Direct mode (also known as
Direct Long mode). ‘f’ is
interpreted as a location in
one of the 16 banks of the data
memory space. The bank is
designated by the Bank Select
Register (BSR). The address
can be in any implemented
bank in the data memory
space.
000h
060h
100h
F00h
F40h
FFFh
Valid range
00h
60h
FFh
Data Memory
Access RAM
Bank 0
Bank 1
through
Bank 14
Bank 15
SFRs
000h
060h
100h
F00h
F40h
FFFh
Data Memory
Bank 0
Bank 1
through
Bank 14
Bank 15
SFRs
FSR2H
FSR2L
ffffffff
001001da
ffffffff
001001da
000h
060h
100h
F00h
F40h
FFFh
Data Memory
Bank 0
Bank 1
through
Bank 14
Bank 15
SFRs
for ‘f’
BSR
00000000