Lookup Instructions
4-57
Assembly Language Instructions
4.9 Lookup Instructions
Table lookup instructions transfer data from program memory (ROM) to data
memory or accumulators. These instructions are useful for reading permanent
ROM data into the user program for manipulation. For example, lookup tables
can store initial filter coefficients, characters for an LCD display which can be
read for display in the LCD screen, etc. There are four lookup instructions as
shown in Table 4–44. Lookup instructions always read the program memory
address from the second argument (which is accumulator or its offset). An
asterisk (*) always precedes this accumulator to indicate that this is an
address.
Table 4–44. Lookup Instructions
Instructions Description
Data Transfer
MOV {
adrs
}, *A
n
The program memory address is stored in accumulator A
n.
Store the contents of
this address in data memory location referred by addressing mode {
adrs
}.
MOV A
n
[~], *A
n
[~] [,
next A
] The program memory address is stored in accumulator A
n
or its offset A
n
~. Store
the contents of this address in accumulator A
n
or A
n
~.
MOVS {
adrs
}, *A
n
The program memory string address is stored in accumulator A
n.
Store the
contents of this address to the data memory string referred by the addressing
mode {
adrs
}. The string length is defined in STR register.
MOVS A
n
[~], *A
n
[~] The program memory string address is stored in accumulator A
n
or its offset A
n
~.
Store the contents of this address to the accumulator string A
n
or its offset A
n
~.
The string length is defined in STR register.
Data Manipulation on Strings
ADDS A
n
[~], A
n
[~],
pma16
ADD the accumulator string A
n
or its offset A
n
~ with the program memory string at
location
pma16
and store the result to the accumulator string A
n
or its offset A
n
~.
The string length is defined in STR register.
ANDS A
n
[~], A
n
[~],
pma16
Bitwise/logical AND the string A
n
(or its offset A
n
~) with the program memory
string at location
pma16
and store the result in the accumulator string A
n
or its
offset A
n
~. The string length is defined in STR register.
CMPS A
n
[~],
pma16
Compare the accumulator string A
n
(or its offset A
n
~) with the program memory
string at location
pma16
and store the result in accumulator string A
n
or its offset
A
n
~. The string length is defined in STR register.
SUBS A
n
[~], A
n
[~],
pma16
Subtract accumulator string A
n
(or its offset A
n
~) with program memory string at
location
pma16
and store the result in accumulator string A
n
or its offset A
n
~. The
string length is defined in STR register.
XORS A
n
[~], A
n
[~],
pma16
Bitwise/Logical XOR the accumulator string A
n
or its offset A
n
~ with program
memory string at location
pma16
and store the result to accumulator string A
n
or
its offset A
n
~. The string length is defined in STR register.