中断服务子程序为什么不能直接调用吗

中断服务子程序为什么不能直接调用吗,第1张

中断服务子程序不能直接调用,因为它们是特殊的程序,它们的功能是在 *** 作系统中运行,而不是在应用程序中运行。它们可以在 *** 作系统中执行特定的任务,比如处理系统中的中断,但是它们不能直接被应用程序调用。因此,如果要调用中断服务子程序,必须使用 *** 作系统提供的特殊接口,这些接口可以让应用程序调用中断服务子程序。

中断处理函数,是不可以被调用的,只能由硬件激活(CPU响应然后转入到特定地址开始执行,处理完之后,返回断点,继续执行)。

因此,中断处理函数,相对于普通函数来说,开始执行的时刻,是随机的。你在写普通函数时,不能预测,在普通函数执行到哪一行,外部设备恰好就产生了一个事件...

在程序执行时,可能在你的某个普通子程序(C中统一称为函数)执行期间,因为硬件激活了中断,CPU自动转到中断函数插进来执行了,形成执行顺序上的嵌套。但是,你在编写普通函数的时候,是无法预期的,所以,不可能把中断处理语句写到普通函数中。

在 *** 作系统开启了保护模式后,应用程序不能直接处理中断,而是要由设备驱动来完成。

在单片机之类的编程中,几乎是裸机编程,所以,可以按具体的C版本,写出自己的中断函数。

中断函数与普通函数之间,可以通过全程变量(标识,计数...),建立起各种配合。

中断服务子程序和子程序不可以互换。中断服务程序:中断函数是发生中断后,自动执行的,不需要主函数调用,是否执行,取决于相应的中断事件是否发生。普通子程序:普通子函数要主函数调用才能执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11201781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存