English
Language : 

PIC18LF24K Datasheet, PDF (519/594 Pages) –
PIC18(L)F26/45/46K40
TBLWT
Table Write
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Q Cycle Activity:
TBLWT ( *; *+; *-; +*)
None
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;
None
0000 0000 0000
11nn
nn=0 *
=1 *+
=2 *-
=3 +*
This instruction uses the three LSBs of
TBLPTR to determine which of the eight
holding registers the TABLAT is written to.
The holding registers are used to program
the contents of Program Memory (P.M.).
(Refer to Section 11.1 “Program Flash
Memory” for additional details on pro-
gramming 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
1
2
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)
Example1:
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)
=
34h
01389Bh
FFh
HOLDING REGISTER
(01389Bh)
= 34h
 2016 Microchip Technology Inc.
Preliminary
DS40001816C-page 519