SN8P1600
8-bit micro-controller
ꢃ
Example 2: The demo program includes interrupt service routine and the address of interrupt service
routine is in a special address of general-purpose area.
CHIP SN8P1602
.DATA
PFLAGBUF
.CODE
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 get 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 go to general-purpose ROM area. The
0004H~0007H are reserved. Users have to skip 0004H~0007H addresses. It is very important and
necessary.
2. The interrupt service starts from 0008H. Users can put the whole interrupt service routine from 0008H
(Example1) or to put a “JMP” instruction in 0008H then place the interrupt service routine in other
general-purpose ROM area (Example2) to get more modularized coding style.
SONiX TECHNOLOGY CO., LTD
Page 18
Revision 1.94