p16f877 Microchip Technology Inc., p16f877 Datasheet - Page 29

no-image

p16f877

Manufacturer Part Number
p16f877
Description
28/40-pin 8-bit Cmos Flash Microcontrollers
Manufacturer
Microchip Technology Inc.
Datasheet
2.5
The INDF register is not a physical register. Addressing
the INDF register will cause indirect addressing.
Indirect addressing is possible by using the INDF reg-
ister. Any instruction using the INDF register actually
accesses the register pointed to by the File Select Reg-
ister, 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-6.
FIGURE 2-6:
Bank Select
2001 Microchip Technology Inc.
RP1:RP0
Note 1: For register file map detail, see Figure 2-3.
Indirect Addressing, INDF and
FSR Registers
Location Select
6
Direct Addressing
Data
Memory
DIRECT/INDIRECT ADDRESSING
From Opcode
(1)
00h
7Fh
Bank 0
00
0
80h
FFh
Bank 1
01
100h
17Fh
Bank 2
10
A simple program to clear RAM locations 20h-2Fh
using indirect addressing is shown in Example 2-2.
EXAMPLE 2-2:
NEXT
CONTINUE
180h
1FFh
Bank 3
11
MOVLW 0x20
MOVWF FSR
CLRF
INCF
BTFSS FSR,4
GOTO
:
IRP
Bank Select
INDF
FSR,F
NEXT
7
INDIRECT ADDRESSING
Indirect Addressing
PIC16F87X
;initialize pointer
;to RAM
;clear INDF register
;inc pointer
;all done?
;no clear next
;yes continue
FSR register
DS30292C-page 27
Location Select
0

Related parts for p16f877