打印

指令是返回到哪一句

[复制链接]
1369|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2012-7-21 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最后一个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
沙发
jiaxw| | 2012-7-21 18:25 | 只看该作者
程序执行到LOOP:后,便反复执行当前行的指令,直到Timer0定时中断的到来

使用特权

评论回复
板凳
老鱼探戈| | 2012-7-23 16:03 | 只看该作者
RETI 是中断返回指令,简单的说就是在那个地址中断发生了,中断子程序处理完之后就返回到哪里,继续执行中断前未完成的程序,顺序执行。

LZ这段程序中主函数只有一条"AJMP    LOOP", 自然只会返回到"AJMP    LOOP"。

使用特权

评论回复
地板
spark周| | 2012-7-23 21:54 | 只看该作者
程序转入Timer0定时中断服务程序中运行,完成后,通过执行RETI指令

使用特权

评论回复
5
spark周| | 2012-7-23 21:54 | 只看该作者
返回中断前的位置,这回它又在那儿不停地LOOP了。。

使用特权

评论回复
6
liliang9554| | 2012-7-23 21:59 | 只看该作者
返回到从哪里进中断的下一条指令处

使用特权

评论回复
7
午夜粪车| | 2012-7-23 21:59 | 只看该作者
START:
LOOP:
TIME0:
提示很明显

使用特权

评论回复
8
shimx|  楼主 | 2012-7-23 22:01 | 只看该作者
恩,谢谢大家。明白了

使用特权

评论回复
9
shimx|  楼主 | 2012-7-23 22:01 | 只看该作者
结贴了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝