SN8P1600
8-bit micro-controller
GENERAL PURPOSE PROGRAM MEMORY AREA
The 1017/4089-word at ROM locations 0009H~03FEH/0FFEH are used as general-purpose memory. The area is
stored instruction’s op-code and look-up table data. The SN8P1600 includes jump table function by using program
counter (PC) and look-up table function by using ROM code registers (R, Y, Z).
The boundary of program memory is separated by the high-byte program counter (PCH) every 100H. In jump table
function and look-up table function, the program counter can’t leap over the boundary by program counter
automatically. Users need to modify the PCH value to “PCH+1” when the PCL overflows (from 0FFH to 000H).
LOOK-UP TABLE DESCRIPTION
In the ROM’s data lookup function, Y register is pointed to the bit 8~bit 15 and Z register to the bit 0~bit 7 data of ROM
address. After MOVC instruction is executed, the low-byte data of ROM then 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
; Not overflow
; Z overflow (FFH ꢁ00), ꢁY=Y+1
; Not overflow
;
MOVC
.
DW
DW
DW
; To lookup data, R = 51H, ACC = 05H.
;
; To define a word (16 bits) data.
; “
; “
@@:
TABLE1:
.
0035H
5105H
2012H
ꢂ
CAUSION: The Y register can't increase automatically if Z register cross boundary from 0xFF to 0x00.
Therefore, user must take care such situation to avoid loop-up table errors. If Z register overflow, Y
register must be added one. The following INC_YZ macro shows a simple method to process Y and Z
registers automatically.
ꢂ
Note: Because the program counter (PC) is only 12-bit, the X register is useless in the application. Users
can omit “B0MOV X, #TABLE1$H”. SONiX ICE support more larger program memory addressing
capability. So make sure X register is “0” to avoid unpredicted error in loop-up table operation.
ꢃ
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 20
Revision 1.94