📄 ex1demo.asm
字号:
.sect "init"
.global init
.text
.word init
.space 8
.word timer0
init: ldp 0,dp
ldi @STCK,sp ;INIT STACK
ldi 1800H,st ;INIT ST
ldi @MCTL,ar0 ;INIT MAIN BUS
ldi MBUS1,r0
sti r0,*ar0
call initt0 ;timer0 init
ldi 100H,IE ;ACTIVE TIMER0 中断使能寄存器
or 2000h,st ;全局中断使能 GIE位置1
main:
ldi @TNUM,ar0
ldi *ar0,r0
absi r0
cmpi 400h,r0
blt main
ldi 0,r0
sti r0,*ar0
ldi @LEDS,ar0
ldi *ar0,r0
cmpi 0,r0
ldieq 1,r0
ldine 0,r0
sti r0,*ar0
ldi @LED,ar0
sti r0,*ar0
br main
;------------------------------
timer0: push st
push ar0
push r0 ;先保存低32位
pushf r0 ;再保存高32位
ldi @TNUM,ar0
ldi *ar0,r0
addi 1,r0
sti r0,*ar0
popf r0
pop r0
pop ar0
pop st
reti
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
initt0: ldi 0,r0
ldi 808h,ar0
lsh 12,ar0
addi 20h,ar0
sti r0,*+ar0(4)
ldi FS,r0
sti r0,*+ar0(8)
ldi 3c1h,r0
sti r0,*ar0
rets
;------------------------------
.data
FS .set 727H
TNUM .word 7000H
LEDS .word 7001H
MCTL .word 808064H
STCK .word 809E00H
LED .word 810003H
MBUS1 .set 01038H
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -