SN8P2604A
8-Bit Micro-Controller
2.1.1.3 LOOK-UP TABLE DESCRIPTION
In the ROM’s data lookup function, Y register is pointed to middle byte address (bit 8~bit 15) and Z register is pointed
to low byte address (bit 0~bit 7) of ROM. After MOVC instruction executed, the low-byte data will be stored in ACC and
high-byte data stored in R register.
¾
Example: To look up the ROM data located “TABLE1”.
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
; Increment the index address for next address.
INCMS
JMP
INCMS
NOP
Z
@F
Y
; Z+1
; Z is not overflow.
; Z overflow (FFH Æ 00), Æ Y=Y+1
;
;
@@:
TABLE1:
MOVC
…
DW
DW
DW
…
; To lookup data, R = 51H, ACC = 05H.
;
; To define a word (16 bits) data.
0035H
5105H
2012H
Note: The Y register will not increase automatically when Z register crosses boundary from 0xFF to
0x00. Therefore, user must take care such situation to avoid look-up table errors. If Z register
overflows, Y register must be added one. The following INC_YZ macro shows a simple method
to process Y and Z registers automatically.
¾
Example: INC_YZ macro.
INC_YZ
MACRO
INCMS
JMP
Z
; Z+1
@F
; Not overflow
INCMS
NOP
Y
; Y+1
; Not overflow
@@:
ENDM
SONiX TECHNOLOGY CO., LTD
Page 17
Version 0.3