PIC16F688 Indirect Addressing, Indf And Fsr Registers - Microchip Technology Inc.

no-image

PIC16F688

Manufacturer Part Number
PIC16F688
Description
Manufacturer
Microchip Technology Inc.
Datasheet
string(70) "Class: /home/ecomp/master.elcodis.git/htdocs/inc/../Doc.php not found!" string(70) "Class: /home/ecomp/master.elcodis.git/htdocs/inc/../Doc.php not found!" string(70) "Class: /home/ecomp/master.elcodis.git/htdocs/inc/../Doc.php not found!"
PIC16F688
2.4
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 of
the STATUS register, as shown in Figure 2-4.
FIGURE 2-4:
DS41203D-page 20
Bank Select
RP1
Note:
Indirect Addressing, INDF and
FSR Registers
RP0
Direct Addressing
6
For memory map detail, see Figure 2-2.
Data
Memory
Location Select
DIRECT/INDIRECT ADDRESSING PIC16F688
From Opcode
7Fh
00h
Bank 0
00
0
Bank 1
01
Bank 2
10
A simple program to clear RAM location 20h-2Fh using
indirect addressing is shown in Example 2-1.
EXAMPLE 2-1:
NEXT CLRF
CONTINUE
Bank 3
11
MOVLW 0x20
MOVWF FSR
INCF
BTFSS FSR,4
GOTO
IRP
Bank Select
180h
1FFh
INDF
FSR
NEXT
7
Indirect Addressing
INDIRECT ADDRESSING
;initialize pointer
;to RAM
;clear INDF register
;inc pointer
;all done?
;no clear next
;yes continue
© 2007 Microchip Technology Inc.
File Select Register
Location Select
0

Related parts for PIC16F688