4.6 特殊的程序流程 – 中断处理
最后稍微介绍一下两种特殊的程序流程 – 中断处理和事件驱动(Event Driven)。首先说明中断处理
中断处理是指计算机使程序的流程突然跳转到程序中的特定地方,这样的地方被称为中断处理例程(Rountine)或是中断处理程序(Handler),而这种跳转是通过CPU所具备的硬件功能实现的。人们通常把中断处理比作是接听电话。假设正坐在书桌前处理文件,这时突然来电话了,不得不停下手头的工作接听电话,接完电话再回到之前的工作。像这样由于外部的原因使正常的流程中断,中断后再返回之前流程的过程就是中断处理流程
在第2章微型计算机的电路图中已经展示过,在Z80 CPU中有和两个引脚,它们可以接收从I/O设备发出的中断请求信号(引脚用于处理一般的中断请求。引脚则用于即使CPU屏蔽了中断,也可在执行中的指令结束后立即响应中断请求的情况)。以硬件形式连接到CPU上的I/O模块会发出中断请求信号,CPU根据该信号执行相应的中断处理程序。在诸位使用的个人计算机上,中断请求信号是由连接到周边设备上的I/O模块发出的。例如每当用户按下键盘上的按键,键盘上的I/O模块就会把中断请求信号发送给CPU。CPU通过这种方式就可以知道有按钮被按下,于是就会从I/O设备读入数据(如图4.14所示)。CPU并不会时刻监控键盘是否有按键被按下
图4.14 中断请求信号由连接到周边设备上的I/O发出
中断处理以从硬件发出的请求为条件,使程序的流程产生分支,因此可以说它是一种特殊的条件分支。可是,在编写的程序中并不需要编写有关中断代理的代码。因为处理中断请求的程序,或是内置于被烧录在计算机ROM中的BIOS系统(Basic Input Output System,基本输入输出系统)中,或是内置于Windows等操作系统中。诸位只需先记住以下两点即可:计算机具有硬件上处理中断的能力;中断一词的英文是Interrupt。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论