Datasheet

PIC14000
DS40122B-page 24 Preliminary 1996 Microchip Technology Inc.
4.4 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
(STATUS<7>), as shown in Figure 4-10. However, IRP
is not used in the PIC14000.
A simple program to clear RAM location 20h-2Fh using
indirect addressing is shown in Example 4-2.
EXAMPLE 4-2: INDIRECT ADDRESSING
movlw 0x20 ;initialize pointer
movf FSR ;to RAM
NEXT clrf INDF ;clear INDF register
incf FSR ;inc pointer
btfss FSR,4 ;all done?
goto NEXT ;no clear next
;yes continue
CONTINUE:
FIGURE 4-10: INDIRECT/INDIRECT ADDRESSING
Note: For memory map detail see Figure 4-1.
00
00
01 10 11
00
IRP 7 FSR 00
bank select
location select
0
6
from opcode
location select
bank select
RP1
RP0
Indirect Addressing
Direct Addressing
Data
Memory
not used
Bank 0
Bank 1 Bank 2 Bank 3
7F
7F