在单片机中,RET和RETI分别是什么返回指令
RETI***是中断返回指令;RET***是子程序返回指令;RETI比RET多一步清除中断优先级状态位,让同级别的中断有机会得到响应。
RET是普通子程序的返回指令,RET是普通子程序的最后1条指令,它使程序从子程序转到调用该子程序指令LCALL/ACALL的下1条指令执行。
但在第二次运行时就会出错了。过程不同***RET是从子程序返回,返回到LCALL或ACALL指令下一条指令处继续执行程序。RETI是从中断服务子程序返回,返回到中断时的断点处继续执行程序,断点未知。
单片机汇编语言指令中中断返回指令RET和RETI有什么不同?
RETI是中断服务子程序的返回指令,RETI是中断服务子程序的最后1条指令,它使程序从中断服务子程序转到中断点继续运行。
过程不同***RET是从子程序返回,返回到LCALL或ACALL指令下一条指令处继续执行程序。RETI是从中断服务子程序返回,返回到中断时的断点处继续执行程序,断点未知。
由于两种调用方式的存在,单片机的返回指令也有了两种不同的指令,分别是RET和RETI。
RETI是中断返回指令,这条指令的功能和RET指令相似,2条指令的不同之处是:本指令清除了中断响应时,被置1的MCS-51内部不可寻址的***“优先级生效”触发器清零。
为什么80C51单片机在执行RETI或访问IE、IP指令时,不能立即响应中断...
1、不是不能响应。而是不响应。只有再执行一条其它指令之后,单片机才去响应早已出现的中断申请。这是硬件设计的结果。
2、(1)没有更高级的中断服务正在进行中。(2)当前的指令周期已经结束。(3)当前执行的不是RETI指令或者访问寄存器IE(IP)的指令。否则,必须等候CPU再执行一条指令后,才能响应中断请求。
3、外部中断请求标志位是***IE0******和***IE1******。***返回(RETI)******指令以及任何访问******IE******和***IP******寄存器的指令执行过***后,CPU不能马上响应中断。
4、中断响应就是单片机CPU对中断源提出的中断请求的接受。中断请求被响应后,再经过一系列的操作,而后转向中断服务程序,完成中断所要求的处理任务。
5、若当前指令为RETI或访问IE或IP指令,执行该类指令占一个机器周期,其后需再执行一条指令(最多占4个机器周期),才能响应中断请求,则增加的等待时间不会超过5个周期。
本文转载自互联网,如有侵权,联系删除