SN8F2280 Series
USB 2.0 Full-Speed 8-Bit Micro-Controller
¾
Example: Modify above example by “INC_YZ” macro.
B0MOV
B0MOV
MOVC
Y, #TABLE1$M ; To set lookup table1’s middle address
Z, #TABLE1$L
; To set lookup table1’s low address.
; To lookup data, R = 00H, ACC = 35H
INC_YZ
; Increment the index address for next address.
;
@@:
MOVC
…
; To lookup data, R = 51H, ACC = 05H.
;
TABLE1:
DW
DW
DW
…
0035H
5105H
2012H
; To define a word (16 bits) data.
The other example of loop-up table is to add Y or Z index register by accumulator. Please be careful if “carry” happen.
¾
Example: Increase Y and Z register by B0ADD/ADD instruction.
B0MOV
B0MOV
Y, #TABLE1$M
Z, #TABLE1$L
; To set lookup table’s middle address.
; To set lookup table’s low address.
B0MOV
B0ADD
A, BUF
Z, A
; Z = Z + BUF.
B0BTS1
JMP
INCMS
NOP
FC
GETDATA
Y
; Check the carry flag.
; FC = 0
; FC = 1. Y+1.
GETDATA:
TABLE1:
;
MOVC
…
; To lookup data. If BUF = 0, data is 0x0035
; If BUF = 1, data is 0x5105
; If BUF = 2, data is 0x2012
DW
DW
DW
…
0035H
5105H
2012H
; To define a word (16 bits) data.
SONiX TECHNOLOGY CO., LTD
Page 20
Version 1.1