PIC16C64-04/PQ Microchip Technology, PIC16C64-04/PQ Datasheet - Page 49

no-image

PIC16C64-04/PQ

Manufacturer Part Number
PIC16C64-04/PQ
Description
8-Bit CMOS Microcontrollers
Manufacturer
Microchip Technology
Datasheet
Example 4-1 shows the calling of a subroutine in
page 1 of the program memory. This example assumes
that the PCLATH is saved and restored by the interrupt
service routine (if interrupts are used).
EXAMPLE 4-1:
ORG 0x500
BSF
BCF
CALL
ORG 0x900
SUB1_P1:
RETURN
FIGURE 4-25: DIRECT/INDIRECT ADDRESSING
1997 Microchip Technology Inc.
bank select
RP1: RP0
For memory map detail see Figure 4-5, Figure 4-6, Figure 4-7, and Figure 4-8.
PCLATH,3
PCLATH,4
SUB1_P1
:
:
:
:
:
Direct Addressing
location select
6
Data
Memory
CALL OF A SUBROUTINE IN
PAGE 1 FROM PAGE 0
;Select page 1 (800h-FFFh)
;Only on >4K devices
;Call subroutine in
;page 1 (800h-FFFh)
;called subroutine
;page 1 (800h-FFFh)
;return to Call subroutine
;in page 0 (000h-7FFh)
from opcode
00h
7Fh
Bank 0
00
0
80h
FFh
Bank 1
01
100h
17Fh
Bank 2
10
4.5
The INDF register is not a physical register. Address-
ing 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 produce 00h. Writing to the INDF regis-
ter 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-25.
A simple program to clear RAM location 20h-2Fh using
indirect addressing is shown in Example 4-2.
EXAMPLE 4-2:
NEXT
CONTINUE
Applicable Devices
61 62 62A R62 63 R63 64 64A R64 65 65A R65 66 67
180h
1FFh
Bank 3
11
Indirect Addressing, INDF and FSR
Registers
clrf
movlw
movwf
incf
btfss
goto
:
IRP
bank select
7
INDIRECT ADDRESSING
0x20
FSR
INDF
FSR,F
FSR,4
NEXT
Indirect Addressing
PIC16C6X
;clear INDF register
;initialize pointer
;
;inc pointer
;all done?
;NO, clear next
;YES, continue
FSR
to RAM
DS30234D-page 49
location select
0

Related parts for PIC16C64-04/PQ