PIC18F6310/6410/8310/8410
TBLWT
Table Write
Syntax:
TBLWT ( *; *+; *-; +*)
Operands:
None
Operation:
if TBLWT*,
(TABLAT) → Holding Register;
TBLPTR – No Change;
if TBLWT*+,
(TABLAT) → Holding Register;
(TBLPTR) + 1 → TBLPTR;
if TBLWT*-,
(TABLAT) → Holding Register;
(TBLPTR) – 1 → TBLPTR;
if TBLWT+*,
(TBLPTR) + 1 → TBLPTR;
(TABLAT) → Holding Register;
Status Affected: None
Encoding:
0000
0000
0000
11nn
nn=0 *
=1 *+
=2 *-
=3 +*
Description:
This instruction uses the 3 LSBs of
TBLPTR to determine which of the 8
holding registers the TABLAT is written to.
The holding registers are used to program
the contents of Program Memory (P.M.).
(Refer to Section 6.0 “Program Memory”
for additional details on programming Flash
memory.)
The TBLPTR (a 21-bit pointer) points to
each byte in the program memory.
TBLPTR has a 2-Mbyte 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:
1
Cycles:
2
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode No
No
No
operation operation operation
No
No
No
No
operation operation operation operation
(Read
(Write to
TABLAT)
Holding
Register )
TBLWT
Table Write (Continued)
Example 1:
TBLWT *+;
Before Instruction
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(00A356h)
=
55h
00A356h
FFh
After Instructions (table write completion)
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(00A356h)
=
55h
00A357h
55h
Example 2:
TBLWT +*;
Before Instruction
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(01389Ah)
=
HOLDING REGISTER
(01389Bh)
=
34h
01389Ah
FFh
FFh
After Instruction (table write completion)
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(01389Ah)
=
HOLDING REGISTER
(01389Bh)
=
34h
01389Bh
FFh
34h
Note:
The TBLWT instruction is not available in
PIC18F6310/6410 devices (i.e., 64-pin
devices) in normal operating modes.
TBLWT can only be used by
PIC18F8310/8410 devices with the
external memory interface and only when
writing to an external memory device.
For more information, refer to Section 6.4
“Writing to Program Memory Space
(PIC18F8310/8410
only)”
and
Section 6.6 “Writing and Erasing
On-Chip Program Memory (ICSP
Mode)”.
DS39635A-page 326
Preliminary
2004 Microchip Technology Inc.