PIC16C62B/72A
2.5
Indirect Addressing, INDF and FSR
Registers
EXAMPLE 2-1:
HOW TO CLEAR RAM
USING 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
The INDF register is not a physical register. Address-
ing INDF actually addresses the register whose
address is contained in the FSR register (FSR is a
pointer).
Reading INDF itself indirectly (FSR = 0) will produce
00h. Writing to the INDF register indirectly results in a
no-operation (although STATUS bits may be affected).
A simple program to clear RAM locations 20h-2Fh
using indirect addressing is shown in Example 2-1.
NEXT
movlw
movwf
clrf
incf
btfss
goto
:
CONTINUE
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-3. However, IRP is not used in the
PIC16C62B/72A.
FIGURE 2-3:
DIRECT/INDIRECT ADDRESSING
Direct Addressing
Indirect Addressing
0
IRP
7
FSR register
0
RP1:RP0
6
from opcode
(1)
bank select
location select
00
00h
01
80h
10
100h
11
180h
(1)
bank select
location select
Data
Memory
not used
(2)
(2)
7Fh
FFh
17Fh
1FFh
Bank 0
Bank 1
Bank 2
Bank 3
Note 1:
Maintain clear for upward compatibility with future products.
2:
Not implemented.
DS35008B-page 18
Preliminary
©
1999 Microchip Technology Inc.