📄 ex04.asm
字号:
***定时器实验***
.title "ex4"
.global _c_int00
.mmregs
ExNo .set 00h
PERSEC .set 01h
SEC .set 02h
MIN .set 03h
STATUS .set 04h
TMP0 .set 64h
TMP1 .set 65h
TMP .set 66h
.sect ".vectors"
rst: B _c_int00
NOP
NOP
.space 18*4*16
tint: B timeout
NOP
NOP
.space 12*4*16
.text
_c_int00
LD #020h,DP ;置数据页指针
STM #3000h,SP
SSBX INTM
RSBX SXM
STM #07FFFh,SWWSR
stm #0001h,2Bh
stm #00a8h,PMST ;改变中断向量映射到0x0080
STM #1007h,CLKMD
BITF CLKMD,#1h
RPT #0FFh
NOP
NOP
ST #0004H,ExNo
STM #19999,PRD
STM #0039h,TCR
STM #0FFFFh,IFR
STM #0008h,IMR
RSBX INTM
ST #0,PERSEC
ST #0,SEC
ST #0,MIN
ST #1,STATUS
nop
nop
nop
nop
LDM TCR,A
AND #0FFEFH,A
STLM A,TCR
susp nop
nop
nop
B susp
timeout ADDM #1,PERSEC
NOP
NOP
NOP
NOP
LD #100,A
NOP
NOP
SUB PERSEC,A
BC secout,ALEQ
B exit
secout ST #0,PERSEC
ADDM #1,SEC
LD #60,A
SUB SEC,A
BC minout,ALEQ
B exit
minout ST #0,SEC
ADDM #1,MIN
LD #100,A
SUB MIN,A
BC overflow,ALEQ
B exit
overflow
ST #0,MIN
ORM #0030h,TCR ;Stop and Reload Timer
ST #0,STATUS ;Set stopfalg
exit
RETE
restart ST #0,PERSEC
ST #0,SEC
ST #0,MIN
ANDM #0FFEFh,TCR
RETE
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -