English
Language : 

PIC18F6585 Datasheet, PDF (405/496 Pages) Microchip Technology – 64/68/80-Pin High-Performance, 64-Kbyte Enhanced Flash Microcontrollers with ECAN Module
PIC18F6585/8585/6680/8680
TBLRD
Table Read
Syntax:
Operands:
[ label ] TBLRD ( *; *+; *-; +*)
None
Operation:
if TBLRD *,
(Prog Mem (TBLPTR)) → TABLAT;
TBLPTR – No Change;
if TBLRD *+,
(Prog Mem (TBLPTR)) → TABLAT;
(TBLPTR) + 1 → TBLPTR;
if TBLRD *-,
(Prog Mem (TBLPTR)) → TABLAT;
(TBLPTR) – 1 → TBLPTR;
if TBLRD +*,
(TBLPTR) + 1 → TBLPTR;
(Prog Mem (TBLPTR)) → TABLAT;
Status Affected:None
Encoding:
0000
0000
0000
10nn
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 TBLRD instruction can modify the
value of TBLPTR as follows:
• no change
• post-increment
• post-decrement
• pre-increment
Words:
1
Cycles:
2
Q Cycle Activity:
Q1
Q2
Q3
Decode
No
operation
No
operation
No
No operation
No
operation
(Read
operation
Program Memory)
Q4
No
operation
No operation
(Write
TABLAT)
TBLRD
Table Read (Continued)
Example1:
TBLRD *+ ;
Before Instruction
TABLAT
=
TBLPTR
=
MEMORY(0x00A356) =
After Instruction
TABLAT
=
TBLPTR
=
Example2:
TBLRD +* ;
Before Instruction
TABLAT
=
TBLPTR
=
MEMORY(0x01A357) =
MEMORY(0x01A358) =
After Instruction
TABLAT
=
TBLPTR
=
0x55
0x00A356
0x34
0x34
0x00A357
0xAA
0x01A357
0x12
0x34
0x34
0x01A358
 2004 Microchip Technology Inc.
DS30491C-page 403