最后一个RET1指令是返回到哪一句的?

[复制链接]
2202|16
 楼主| dingy 发表于 2013-3-12 19:03 | 显示全部楼层 |阅读模式
最后一个RET1指令是返回到哪一句的?
ORG  0000H      
AJMP    START            
ORG  000BH           
AJMP    TIME0
ORG    30H                           
START:MOV  P1,#0FFH   
MOV  TMOD,#00000001B
MOV  TH0,#15H         ;
MOV    TL0,#0A0H               
SETB    EA                             
SETB    ET0                             
SETB    TR0                              
LOOP:AJMP    LOOP              
TIME0:                                       
PUSH    ACC                           
PUSH    PSW                           
CPL    P1.0                                
MOV  TH0,#15H         
MOV    TL0,#0A0H                  
POP    PSW                                 
POP    ACC                                 
RETI                                          
END
pengf 发表于 2013-3-12 19:03 | 显示全部楼层
程序执行到LOOP:后,便反复执行当前行的指令,直到Timer0定时中断的到来
renyaq 发表于 2013-3-12 19:06 | 显示全部楼层
RETI 是中断返回指令,简单的说就是在那个地址中断发生了,中断子程序处理完之后就返回到哪里,继续执行中断前未完成的程序,顺序执行。

renyaq 发表于 2013-3-12 19:09 | 显示全部楼层

LZ这段程序中主函数只有一条"AJMP    LOOP", 自然只会返回到"AJMP    LOOP"。
supernan 发表于 2013-3-12 19:09 | 显示全部楼层
程序转入Timer0定时中断服务程序中运行,完成后,通过执行RETI指令
supernan 发表于 2013-3-12 19:09 | 显示全部楼层
返回中断前的位置,这回它又在那儿不停地LOOP了。。
栩栩如生 发表于 2013-3-12 19:10 | 显示全部楼层
返回到从哪里进中断的下一条指令处
zwll 发表于 2013-3-12 19:11 | 显示全部楼层
START:
LOOP:
TIME0:
提示很明显
chuxh 发表于 2013-3-12 19:13 | 显示全部楼层
START:
LOOP:
TIME0:
提示很明显
 楼主| dingy 发表于 2013-3-12 19:14 | 显示全部楼层
恩,谢谢大家。明白了
 楼主| dingy 发表于 2013-3-12 19:15 | 显示全部楼层
结贴了
拖拉机6号 发表于 2013-3-12 21:19 | 显示全部楼层
中断返回的标志
Redstar2012 发表于 2013-3-12 22:37 | 显示全部楼层
RET1是TIME0中断函数返回,继续运行进行中断之前的代码
罗菜鸟 发表于 2013-3-12 22:38 | 显示全部楼层
中断发生时PC寄存器会保存在堆栈中,RETI从堆栈中恢复PC寄存器值
加油吧小鱼儿 发表于 2013-3-12 23:30 | 显示全部楼层
来学习的!
cslat21_ic 发表于 2013-3-13 12:37 | 显示全部楼层
中断发生前。
zhaofy521 发表于 2013-3-14 13:29 | 显示全部楼层
返回到断点
断点就是进中断前的下条指令处
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部