中断服务程序设计和响应的一般过程 1. 确定要使用的中断类型号 ○ 中断类型号不能随便使用,不能占用系统已经用过的类型号 2. 保存原中断向量 ○ 将向量表中原来的中断入口地址保存起来,存进附加段或数据段(将向量表中原来的中断入口地址保存好, 然后才可以设置自己得中断向量) 3. 设置自己的中断向量 ○ 将自己的设置的中断入口地址保存在中断矢量表中,段地址放在DS,偏移地址放在DX中,然后调用DOS 功能调用(INT 21H)的25号功能 4. 设置中断屏蔽字(可选) 5. CPU开中断 ○ STI(CPU在响应中断的时候,会自动) 6. 恢复原中断向量 ○ 程序退出之前应该恢复原中断向量,因为程序一旦退出,这一存储区内的内容是不定的,如果CPU再一次 转入这个内存区,那么后果很可能导致系统死机、崩溃 CPU响应外部可屏蔽中断(INTR)的一般过程 (在IF=1的情况下) a. 执行完现行指令 b. 保护断点现场(压栈保护) i. PSW ii. CS iii. IP c. 从8259A获取了中断类型号 d. 清IF、TF i. 清IF:是因为系统默认执行中断程序时不允许被打断,如果用户允许被打断的话,则可以手动STI ii. 清TF:为了免于单步执行 e. 中断类型号X4=中断向量 i. IP获得值 ii. CS获得值 f. 进入中断入口程序 什么是中断服务子程序? ○ 为提出中断请求的中断源服务的那段程序就是中断服务子程序 什么是中断嵌套? ○ 允许CPU在执行一个中断服务期间,响应更高层次的中断源提出的中断请求,在服务完这个更高优先级 的中断源后,返回至刚刚中断服务程序继续执行