English
Language : 

PIC16F737-I Datasheet, PDF (32/276 Pages) Microchip Technology – 28/40/44-Pin, 8-Bit CMOS Flash Microcontrollers with 10-Bit A/D and nanoWatt Technology
PIC16F7X7
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 the register pointed to by the File
Select Register, FSR. Reading the INDF register itself
indirectly (FSR = 0) will read 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-5.
A simple program to clear RAM locations 20h-2Fh
using indirect addressing is shown in Example 2-2.
EXAMPLE 2-2: INDIRECT ADDRESSING
MOVLW
MOVWF
NEXT CLRF
INCF
BTFSS
GOTO
CONTINUE
:
0x20
FSR
INDF
FSR, F
FSR, 4
NEXT
;initialize pointer
;to RAM
;clear INDF register
;inc pointer
;all done?
;no clear next
;yes continue
FIGURE 2-5:
DIRECT/INDIRECT ADDRESSING
Direct Addressing
RP1:RP0 6
From Opcode 0
Indirect Addressing
IRP
7
FSR Register
0
Bank Select Location Select
00
00h
01
80h
10
100h
11
180h
Bank Select
Location Select
Data
Memory(1)
7Fh
FFh
17Fh
1FFh
Bank 0 Bank 1 Bank 2 Bank 3
Note 1: For register file map detail, see Figure 2-2.
DS30498C-page 30
 2004 Microchip Technology Inc.