10.3.10.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, Configuration bits as well as the DIA and DCI.
The Table Pointer register, TBLPTR, is used by the TBLRD
and TBLWT
instructions. These instructions can increment and decrement TBLPTR, depending on specific
appended characters 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 |