
PIC18F1230/1330
DS39758D-page 254
 2009 Microchip Technology Inc.
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
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
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
operation
No
operation
No
operation
No
operation
No
operation
(Read
TABLAT)
No
operation
No
operation
(Write to
Holding
Register )
TBLWT
Table Write (Continued)
Example 1:
TBLWT *+;
Before Instruction
TABLAT
=
55h
TBLPTR
=
00A356h
HOLDING REGISTER
(00A356h)
=
FFh
After Instructions (table write completion)
TABLAT
=
55h
TBLPTR
=
00A357h
HOLDING REGISTER
(00A356h)
=
55h
Example 2:
TBLWT +*;
Before Instruction
TABLAT
=
34h
TBLPTR
=
01389Ah
HOLDING REGISTER
(01389Ah)
=
FFh
HOLDING REGISTER
(01389Bh)
=
FFh
After Instruction (table write completion)
TABLAT
=
34h
TBLPTR
=
01389Bh
HOLDING REGISTER
(01389Ah)
=
FFh
HOLDING REGISTER
(01389Bh)
=
34h