MCS51单片机,中断服务程序的返回指令和子程序的返回指令有什么区别?是多少?

如题所述

RET用于一般程序的返回
RETI用于中断函数的返回
以上是一般单片机书籍简绍的,然而在实际应用中,我发现,在程序返回中一样可以使用RETI,而在中断返回中却无法使用RET,究其原因是因为RETI比RET多做一件事情就是将“优先级生效”触发器清零
原来在8051构架中--中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。”追问

你只要告诉我,MCS51单片机,中断服务程序的返回指令和子程序的返回指令分别是什么就可以了。谢谢!

追答

子程序返回是RET,中断服务程序返回是RETI

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-09
中断服务程序的返回指令 汇编助记符 reti 机器指令 32h
子程序的返回指令 汇编助记符 ret 机器指令 22h

单片机中子程序和中断服务程序有何异同?为什么子程序返回指令RET和中断...
子程序是一段程序代码,是独立的一个执行部分,你主程序调用就执行,不调用就不执行;而中断服务程序也是是一段程序代码,是独立的一个执行部分;但是只在你主程序开了中断,并且有中断条件(不如中断口接收到低电平,定时时间到了)才会去执行,并且中断服务程序会将你主程序运行时的PC指针寄存器,A累...

在单片机中子程序与中断服务程序的异同点。
⑴ 都是中断当前正在执行的程序,都要通过执行返回指令,返回到原来的程序。⑵ 都是由硬件自动地把断点地址压入堆栈;当执行到返回指令时,自动弹出断点地址以便返回原来的程序。⑶都要通过软件完成现场保护和现场恢复。⑷ 都可以实现嵌套。

中断服务程序与普通子程序有哪些相同和不同之处???
一、执行方式不同 1、中断服务程序:中断函数是发生中断后,自动执行的,不需要主函数调用,是否执行,取决于相应的中断事件是否发生。2、普通子程序:普通子函数要主函数调用才能执行。二、使用情况不同 1、中断服务程序:中断函数在中断发生时,先进入中断入口地址,再通过中断入口地址处放置的一条无条件...

51单片机定时器中断函数返回和普通函数返回的细节
汇编语言里面,没有“函数”这个词汇。定时器0只是在TR0为零的时候,才停止;在其它的任何期间,不停。加一计数到FFFFH,再加一,将产生溢出标志TF0,计数值变成0000H。定时器0溢出标志TF0在中断响应的时候,自动清零。(T2例外)。中断响应,只有PC自动压栈。调用子程序,也是只有PC自动压栈。--- 做...

中断服务程序与中断子程序有何区别?
,以保证后续中断源的及时响应。所以,当把RETI替换为RET后,该程序在第一次运行时可能不会出错,但在第二次运行时就会出错了。2、过程不同 RET是从子程序返回,返回到LCALL或ACALL指令下一条指令处继续执行程序。RETI是从中断服务子程序返回,返回到中断时的断点处继续执行程序,断点未知。

mcs-51单片机程序中可以直接调用中断服务程序吗?为什么?
也就是说你在主程序中完成了某个中断的触发条件时,当达到这个条件时程序就会跳转到中断服务函数中去,执行完中断服务函数中的程序后再返回主程序中继续循环执行。你说的调用其实不太正确,中断服务函数只能触发,它是由单片机内特定的某些寄存器的标志位控制的,当这些满足触发条件的时候,标志位被硬件置1...

单片机汇编指令中RETI和RET的区别
单片机汇编指令中RETI和RET的主要区别在于RETI用于从中断服务程序返回,而RET用于从子程序返回。RETI指令,全称为“Return from Interrupt”,即从中断返回。当单片机执行到RETI指令时,它会从堆栈中弹出PC(程序计数器)和ACC(累加器)的值,然后恢复这两个寄存器的值,使得程序从中断服务程序...

单片机调用中断服务子程序和调用子程序的区别是什么
调用子程序的偏移地址是随机的,基本过程差不多,返回时,中断服务子程序用的是reti 调用子程序是ret 调用中断服务子程序和调用子程序都会把当前偏移地址的下一地址压栈,但调用子程序的返回指令ret不影响标志位,reti从中断程序返回,并会清除内部相应的中断状态寄存器。我说的是80c51的 ...

单片机汇编语言指令中中断返回指令RET和RETI有什么不同?
RETI 是中断返回指令;RET 是子程序返回指令;RETI比RET多一步清除中断优先级状态位,让同级别的中断有机会得到响应。中断指令“RETI”做为中断跳出指令除了将堆栈中保存着的地址取出,送回PC;使程序从主程序的中断处继续往下执行的作用外,还有将“优先级生效”触发器清零的功能。

在单片机中,RET和RETI分别是什么返回指令
在单片机中返回指令有RET、RETI或者跳转指令SJMP或LJMP。RET是一般子程序返回指令,执行该指令,会自动弹出被保护的地址给PC指针。RETI是中断服务程序返回指令,执行该指令,除了弹出被保护的地址指针给PC外,还会恢复影响中断的一些标志位,比如定时器中断的TFn标志。

相似回答