PIC12F629/675
A simple program to clear RAM location 20h-2Fh using
indirect addressing is shown in Example 2-±.
2.4
Indirect Addressing, INDF and
FSR Registers
The INDF register is not a physical register. Addressing
the INDF register will cause indirect addressing.
EXAMPLE 2-1:
INDIRECT ADDRESSING
movlw
movwf
0x20
;initialize pointer
;to RAM
Indirect addressing is possible by using the INDF
register. Any instruction using the INDF register actu-
ally 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-4.
FSR
NEXT
clrf
incf
btfss
goto
INDF
FSR
;clear INDF register
;inc pointer
FSR,4 ;all done?
NEXT ;no clear next
;yes continue
CONTINUE
FIGURE 2-4:
DIRECT/INDIRECT ADDRESSING PIC12F629/675
Direct Addressing
Indirect Addressing
RP1(1) RP0
6
0
IRP(1)
FSR Register
From Opcode
7
0
Bank Select
Location Select
Bank Select Location Select
00
01
10
11
00h
180h
Data
Memory
Not Used
7Fh
1FFh
Bank 0
Bank 1
Bank 2
Bank 3
For memory map detail see Figure 2-2.
Note 1: The RP1 and IRP bits are reserved; always maintain these bits clear.
DS41190C-page 18
2003 Microchip Technology Inc.