Microchip Technology AC244045 Data Sheet

Page of 302
© 2009 Microchip Technology Inc.
DS41341E-page 31
PIC16F72X/PIC16LF72X
2.5
Indirect Addressing, INDF and 
FSR Registers 
The INDF register is not a physical register. Addressing
the INDF register will cause indirect addressing. 
Indirect addressing is possible by using the INDF
register. Any instruction using the INDF register
actually accesses data pointed to by the File Select
Register (FSR). Reading INDF itself indirectly will
produce 00h. Writing to the INDF register indirectly
results in a no operation (although Status bits may be
affected). An effective 9-bit address is obtained by
concatenating the 8-bit FSR register and the IRP bit of
the STATUS register, as shown in Figure 2-8. 
A simple program to clear RAM location 020h-02Fh
using indirect addressing is shown in Example 2-2.
EXAMPLE 2-2:
INDIRECT ADDRESSING
FIGURE 2-8:
DIRECT/INDIRECT ADDRESSING 
MOVLW
020h
;initialize pointer
MOVWF
FSR
;to RAM
BANKISEL
020h
NEXT CLRF
INDF
;clear INDF register
INCF
FSR
;inc pointer
BTFSS
FSR,4
;all done?
GOTO
NEXT
;no clear next
CONTINUE
;yes continue
Note:
For memory map detail, refer to Figures 2-4 and  2-5.
Data
Memory
Indirect Addressing
Direct Addressing
Bank Select
Location Select
RP1
RP0
6
0
From Opcode
IRP
File Select Register
7
0
Bank Select
Location Select
00
01
10
11
180h
1FFh
00h
7Fh
Bank 0
Bank 1
Bank 2
Bank 3