注册 登录
编程论坛 汇编论坛

新手 有人帮我一下吗

natu123 发布于 2009-10-31 15:53, 469 次点击
ORG 0000H  
AJMP START
ORG 000BH ;定时器0的中断向量地址
AJMP TIME0 ;跳转到真正的定时器程序处
ORG 30H
START:
MOV P1,#0FFH ;关所 灯
MOV TMOD,#00000001B ;定时/计数器0工作于方式1
MOV TH0,#15H
MOV TL0,#0A0H ;即数5536
SETB EA ;开总中断允许
SETB ET0 ;开定时/计数器0允许
SETB TR0 ;定时/计数器0开始运行
LOOP: AJMP LOOP ;真正工作时,这里可写任意程序
TIME0: ;定时器0的中断处理程序
PUSH ACC
PUSH PSW ;将PSW和ACC推入堆栈保护
CPL P1.0
MOV TH0,#15H
MOV TL0,#0A0H ;重置定时常数
POP PSW
POP ACC
RETI
END

我的QQ:71877076 如果可以的话 语音指导一下我
4 回复
#2
natu1232009-10-31 16:16
就是解释下中断返回后从哪里开始执行程序
#3
Kid_X2009-10-31 20:59
被中断的地方接着往下运行。
#4
东海一鱼2009-11-01 10:27
中断和函数用的原理是一致的,区别在于函数调用的位置是可知的,而中断的产生时未知的。

但调用过后同样都返回原程序的上下文空间继续执行。
#5
natu1232009-11-03 10:09
RETI中断结束后是从AJMP TIME0 开始执行还是PUSH ACC这里开始执行
1