PIC18CXX2
TBLWT
Table Write
TBLWT
Table Write (cont.’d)
TBLWT *+;
Syntax:
[ label ]
None
TBLWT ( *; *+; *-; +*)
Example1:
Operands:
Operation:
Before Instruction
TABLAT
TBLPTR
=
=
=
0x55
if TBLWT*,
(TABLAT) → Prog Mem (TBLPTR) or
Holding Register;
TBLPTR - No Change;
if TBLWT*+,
(TABLAT) → Prog Mem (TBLPTR) or
Holding Register;
0x00A356
0xFF
MEMORY(0x00A356)
After Instructions (table write completion)
TABLAT
TBLPTR
=
=
=
0x55
0x00A357
0x55
MEMORY(0x00A356)
TBLWT +*;
Example 2:
(TBLPTR) +1 → TBLPTR;
if TBLWT*-,
(TABLAT) → Prog Mem (TBLPTR) or
Holding Register;
(TBLPTR) -1 → TBLPTR;
if TBLWT+*,
(TBLPTR) +1 → TBLPTR;
(TABLAT) → Prog Mem (TBLPTR) or
Holding Register;
Before Instruction
TABLAT
TBLPTR
MEMORY(0x01389A)
MEMORY(0x01389B)
=
=
=
=
0x34
0x01389A
0xFF
0xFF
After Instruction (table write completion)
TABLAT
TBLPTR
MEMORY(0x01389A)
MEMORY(0x01389B)
=
=
=
=
0x34
0x01389B
0xFF
0x34
Status Affected:
Encoding:
None
0000
0000
0000
11nn
nn=0 *
=1 *+
=2 *-
=3 +*
Description:
This instruction is used to program the
contents of Program Memory (P.M.).
The TBLPTR (a 21-bit pointer) points
to each byte in the program memory.
TBLPTR has a 2 MBtye address
range. The LSb of the TBLPTR
selects which byte of the program
memory location to access.
TBLPTR[0] = 0:Least Significant
Byte of Program
Memory Word
TBLPTR[0] = 1:Most Significant
Byte of Program
Memory Word
The TBLWT instruction can modify the
value of TBLPTR as follows:
• no change
• post-increment
• post-decrement
• pre-increment
Words:
Cycles:
1
2 (many if long write is to on-chip
EPROM program memory)
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
No
No
No
operation
operation
operation
No
No
No
No
operation
operation
(Read
TABLAT)
operation
operation
(Write to Holding
Register or Memory)
DS39026B-page 232
Preliminary
7/99 Microchip Technology Inc.