PIC12F629/675
2.4
Indirect Addressing, INDF and
FSR Registers
A simple program to clear RAM location 20h-2Fh using
indirect addressing is shown in Example 2-1.
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
(STATUS<7>), as shown in Figure 2-2.
EXAMPLE 2-1:
MOVLW
MOVWF
CLRF
INCF
BTFSS
GOTO
INDIRECT ADDRESSING
0x20
FSR
INDF
FSR
FSR,4
NEXT
;initialize pointer
;to RAM
;clear INDF register
;inc pointer
;all done?
;no clear next
;yes continue
NEXT
CONTINUE
FIGURE 2-2:
DIRECT/INDIRECT ADDRESSING PIC12F629/675
Indirect Addressing
0
IRP
(1)
7
FSR Register
0
Direct Addressing
RP1
(1)
RP0
6
From Opcode
Bank Select Location Select
00
00h
01
10
11
Bank Select
180h
Location Select
Data
Memory
Not Used
7Fh
Bank 0
For memory map detail see Figure 2-2.
Note 1:
The RP1 and IRP bits are reserved; always maintain these bits clear.
Bank 1
Bank 2
Bank 3
1FFh
DS41190G-page 20
2010 Microchip Technology Inc.