什么是中断处理程序?编写中断处理程序时要注意哪些问题?

什么是中断处理程序?编写中断处理程序时要注意哪些问题?,第1张

发生中断时CPU在中断允许的激薯情况下,强制跳转至中断处理程序对该中断进行响应。

中断处理程序需要注意:

若是改写系统中断,明辩者尽量保存系统中断的原地址;

如果是自定义中断,需要注意是否允许多重中断,即能否被另一个中断(包括同一个中断号的相同中断)打断,若不希望被打断,应当在中断处理程序开始时关闭中断允许位IF(用CLI指令),并且在程序结束时开启中断位(用STI指令)。

另外,中断处理程序本身也是一个过程,也灶宴有可能出错,所以尽量不要在中断处理程序中产生错误,以免程序不可控。

1.中断基本概念什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返回地址),暂停工作,去接电话(中断),并指示“按第二方案”(调中断服务程序),然后,再静下心来(恢复中断前状态),接着处理文件……。毕历宏计算机科学家观察了类似实例,“外师物化,内得心源”,借用了这些思想、处理方式和名称,研制了一系列中断服务程序及其调度系统。中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。内部中断是指因硬件出错(手册如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序烂前。例如:ROMBIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理中断等,)以及DOS的系统功能调用(INT21H)等都是软件中断。CPU为了处理并发的中断请求,规定了中断的优先权,中断优先权由高到低的顺序是:(1)除法错、溢出中断、软件中断(2)不可屏蔽中断(3)可屏蔽中断(4)单步中断。

中断是单片机的一个重要功能,中断子程序专为执行中断功能,它是在发生中断后,自动执行的,不需要主程序调用

在汇编中:模唤

中断子程序旦缓凯用RETI返回,RETI返回时要清除中断标志的

中断函数在中断发生时先进中断入口

03H、08H、13H、18H、23H后随即写一个跳转指令,再跳转到相应语句

在C语言中:

中断函数没有参数,没有返回值

要进一步了解,哪裂参考:

http://z.baidu.com/question/84264993.html

http://z.baidu.com/question/100717950.html

http://z.baidu.com/question/81735469.html?fr=qrl&cid=865&index=5


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存