12.1.1.1 Table Pointer Register
The Table Pointer (TBLPTR) register addresses a byte within the program memory. The TBLPTR comprises three SFR registers: Table Pointer Upper Byte, Table Pointer High Byte and Table Pointer Low Byte (TBLPTRU:TBLPTRH:TBLPTRL). These three registers join to form a 22-bit wide pointer (bits 0 through 21). The bits 0 through 20 allow the device to address up to 2 Mbytes of program memory space. Bit 21 allows access to the Device ID, the User ID and the Configuration bits.
The Table Pointer register, TBLPTR, is used by the TBLRD
and TBLWT
instructions. These instructions can increment and decrement the TBLPTR depending on
specific appended characters as shown in the following table. The increment and decrement
operations on the TBLPTR affect only bits 0 through 20.
Example | Operation on Table Pointer |
TBLRD*
|
TBLPTR is not modified |
TBLRD*+
|
TBLPTR is incremented after the read/write |
TBLRD*-
|
TBLPTR is decremented after the read/write |
TBLRD+*
|
TBLPTR is incremented before the read/write |