HT46R01A
Table Location Bits
Instruction
b9
PC9
1
b8
PC8
1
b7
@7
@7
b6
@6
@6
b5
@5
@5
b4
@4
@4
b3
@3
@3
b2
@2
@2
b1
@1
@1
b0
@0
@0
TABRDC [m]
TABRDL [m]
Table Location
Note: PC9~PC8: Current Program Counter bits
@7~@0: Table Pointer TBLP bits
The following diagram illustrates the addressing/data
flow of the look-up table:
which is stored there using the ORG statement. The
value at this ORG statement is ²300H² which refers to
the start address of the last page within the 1K Program
Memory. The table pointer is setup here to have an ini-
tial value of ²06H². This will ensure that the first data
read from the data table will be at the Program Memory
address ²306H² or 6 locations after the start of the last
page. Note that the value for the table pointer is refer-
enced to the first address of the present page if the
²TABRDC [m]² instruction is being used. The high byte
of the table data which in this case is equal to zero will
be transferred to the TBLH register automatically when
the ²TABRDL [m]² instruction is executed.
P
r
o
g
r
a
m
C
o
u
n
t
e
r
H
i
g
h
B
y
t
e
P
r
o
g
r
a
m
M
e
m
o
r
y
T
B
L
P
T
B
L
H
S
p
e
c
i
f
i
e
d
b
y
[
m
]
T
a
b
l
e
C
o
n
t
e
n
t
s
L
o
w
B
y
t
e
T
a
b
l
e
C
o
n
t
e
n
t
s
H
i
g
h
B
y
t
e
Table Program Example
The following example shows how the table pointer and
table data is defined and retrieved from the device. This
example uses raw table data located in the last page
tempreg1
tempreg2
db
db
:
?
?
; temporary register #1
; temporary register #2
:
mov
mov
a,06h
; initialise table pointer - note that this address
; is referenced
tblp,a
:
:
; to the last page or present page
tabrdl
tempreg1
; transfers value in table referenced by table pointer
; to tempregl
; data at prog. memory address ²306H² transferred to
; tempreg1 and TBLH
dec
tblp
; reduce value of table pointer by one
tabrdl
tempreg2
; transfers value in table referenced by table pointer
; to tempreg2
; data at prog.memory address ²305H² transferred to
; tempreg2 and TBLH
; in this example the data ²1AH² is transferred to
; tempreg1 and data ²0FH² to register tempreg2
; the value ²00H² will be transferred to the high byte
; register TBLH
:
:
org
dc
300h
; sets initial address of last page
00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh
:
:
Rev. 1.10
9
August 13, 2008