PIC24FJ64GA104 FAMILY
TABLE 4-27: PROGRAM SPACE ADDRESS CONSTRUCTION
Program Space Address
Access
Space
Access Type
<23>
<22:16>
<15>
<14:1>
<0>
Instruction Access
(Code Execution)
User
0
PC<22:1>
0
0xx xxxx xxxx xxxx xxxx xxx0
TBLPAG<7:0> Data EA<15:0>
0xxx xxxx
TBLRD/TBLWT
(Byte/Word Read/Write)
User
xxxx xxxx xxxx xxxx
Data EA<15:0>
Configuration
User
TBLPAG<7:0>
1xxx xxxx
xxxx xxxx xxxx xxxx
Data EA<14:0>(1)
Program Space Visibility
(Block Remap/Read)
0
0
PSVPAG<7:0>
xxxx xxxx
xxx xxxx xxxx xxxx
Note 1: Data EA<15> is always ‘1’ in this case, but is not used in calculating the program space address. Bit 15 of
the address is PSVPAG<0>.
FIGURE 4-5:
DATA ACCESS FROM PROGRAM SPACE ADDRESS GENERATION
Program Counter(1)
Program Counter
23 Bits
0
0
1/0
EA
Table Operations(2)
1/0
TBLPAG
8 Bits
16 Bits
24 Bits
Select
1
0
EA
Program Space Visibility(1)
(Remapping)
0
PSVPAG
8 Bits
15 Bits
23 Bits
Byte Select
User/Configuration
Space Select
Note 1: The LSb of program space addresses is always fixed as ‘0’ in order to maintain word alignment of
data in the program and data spaces.
2: Table operations are not required to be word-aligned. Table read operations are permitted in the
configuration memory space.
DS39951C-page 48
2010 Microchip Technology Inc.