硬件中断程序设计:控制字寄存器与中断服务子程序

需积分: 48 1 下载量 119 浏览量 更新于2024-07-12 收藏 650KB PPT 举报
控制字寄存器是硬件中断程序设计中的关键组成部分,它在86系列CPU中扮演着管理中断的重要角色。SC1和SC0这两个控制位用于选择中断通道,其中00对应通道0,01对应通道1,10对应通道2,11则为无效状态。除了通道选择,控制字寄存器还包含了读写方式选择、工作方式选择以及数制选择等控制选项。 在中断系统中,中断被定义为CPU在处理正常程序时突然暂停,转而响应某个突发的紧急事件。这些事件被称为中断源,86系列CPU支持256种不同的中断类型,包括不可屏蔽中断NMI和可屏蔽中断INTR。NMI通常用于处理紧急情况,而INTR则是可以通过中断允许标志IF来控制是否接受来自外部或内部的中断请求。 外部中断,如INTA、INTB等,是通过特定的输入/输出引脚由外部设备发起的,而内部中断则包括由微处理器产生的如单步中断、除法错误中断和溢出中断,以及由软件中断指令引起的中断,如DOS中断和BIOS中断,这些中断为用户程序提供了丰富的功能。 中断向量表是内存中的一个重要结构,用于存储各个中断服务子程序的地址,共占用1024个字节。当CPU接收到中断请求后,会根据中断类型号查找到对应的中断服务子程序地址并执行。 在硬件中断程序设计中,关键任务有两个:编写中断服务子程序(中断函数)和设置中断向量。中断服务函数通常采用关键字"interrupt"声明,例如`void interrupt myint(void)`,并且在使用之前需要进行函数声明。设置中断向量的过程涉及调用`setvect()`函数,该函数接收中断类型号和中断服务函数的指针作为参数,例如`void setvect(0x08, void interrupt (*myint)());`。 控制字寄存器、中断源管理、中断向量表以及中断服务函数的设置是中断程序设计的核心技术,理解并掌握它们对于实现高效、准确的硬件中断处理至关重要。