SN8P1602B
8-Bit Micro-Controller
Programming Tip: Defining Interrupt Vector (Example 2)
CHIP SN8P1602B
.DATA
.CODE
PFLAGBUF
ORG
JMP
.
0
; 0000H
START
; Jump to user program address.
; 0001H ~ 0007H are reserved
ORG
JMP
08
MY_IRQ
; 0008H, Jump to interrupt service routine address
ORG
10H
START:
; 0010H, The head of user program.
.
; User program
.
.
JMP
START
; End of user program
MY_IRQ:
;The head of interrupt service routine
B0XCH
B0MOV
B0MOV
.
A, ACCBUF
A, PFLAG
PFLAGBUF, A
; B0XCH doesn’t change C, Z flag
; Save PFLAG register in a buffer
.
B0MOV
B0MOV
B0XCH
RETI
A, PFLAGBUF
PFLAG, A
A, ACCBUF
; Restore PFLAG register from buffer
; B0XCH doesn’t change C, Z flag
; End of interrupt service routine
ENDP
; End of program
ꢀ
Remark: It is easy to understand the rules of SONIX program from demo programs given above. These
points are as following:
1. The address 0000H is a “JMP” instruction to make the program starts from the beginning.
2. The 0004H~0007H are reserved. Users is NOT allow to use 0004H~0007H addresses. The default
value might change from time to time during various production progress. We strongly suggest
users DO NOT take this value into the Check Sum. For detailed information, please check the
following Checksum Calculation section
SONiX TECHNOLOGY CO., LTD
Page 16
Version 1.1