PIC18F2331/2431/4331/4431
TBLRD
Table Read
TBLRD
Table Read (cont’d)
Syntax:
[ label ]
TBLRD ( *; *+; *-; +*)
Example 1:
TBLRD *+ ;
Operands:
Operation:
None
Before Instruction
TABLAT
TBLPTR
MEMORY(0x00A356)
=
=
=
0x55
0x00A356
0x34
if TBLRD *,
(Prog Mem (TBLPTR)) TABLAT,
TBLPTR – No Change;
if TBLRD *+,
After Instruction
TABLAT
TBLPTR
=
=
0x34
0x00A357
(Prog Mem (TBLPTR)) TABLAT,
(TBLPTR) + 1 TBLPTR;
if TBLRD *-,
(Prog Mem (TBLPTR)) TABLAT,
(TBLPTR) – 1 TBLPTR;
if TBLRD +*,
Example 2:
TBLRD +* ;
Before Instruction
TABLAT
=
=
=
=
0xAA
0x01A357
0x12
TBLPTR
(TBLPTR) + 1 TBLPTR,
(Prog Mem (TBLPTR)) TABLAT
MEMORY(0x01A357)
MEMORY(0x01A358)
After Instruction
0x34
Status Affected: None
Encoding:
0000
0000
0000
10nn
TABLAT
TBLPTR
=
=
0x34
0x01A358
nn = 0
*
=1 *+
=2 *-
=3 +*
Description:
This instruction is used to read the contents
of Program Memory (P.M.). To address the
program memory, a pointer called Table
Pointer (TBLPTR) is used.
The TBLPTR (a 21-bit pointer) points to
each byte in the program memory. TBLPTR
has a 2-Mbyte address range.
TBLPTR[0] = 0: Least Significant Byte of
Program Memory Word
TBLPTR[0] = 1: Most Significant Byte of
Program Memory Word
The TBLRDinstruction can modify the value
of TBLPTR as follows:
•
•
•
•
no change
post-increment
post-decrement
pre-increment
Words:
Cycles:
1
2
Q Cycle Activity:
Q1
Q2
No
Q3
No
Q4
Decode
No
operation
operation
operation
No
No operation
No
No operation
(Write
TABLAT)
operation (Read Program operation
Memory)
2010 Microchip Technology Inc.
DS39616D-page 321