汇编第8章 实模式下的中断程序设计.ppt
文本预览下载声明
本章主要教学内容 8.1 中断概述 8.2 中断处理程序设计 8.3 BIOS中断调用 8.4 DOS功能调用 8.5 磁盘文件管理 本章小结 * 第8章 实模式下的中断程序设计 汇编语言程序设计 * 1.中断的基本概念; 2.中断程序的设计方法; 3.BIOS/DOS中断调用。 1.理解中断的基本概念; 2.掌握中断程序的基本设计方法; 3.能熟练使用BIOS/DOS中断调用。 本章主要教学目的及要求 8.1.1 中断与中断源 中断:当一种特殊事件发生时,CPU停止正在运行的程序,而转去执 行该事件的处理程序,处理完该事件后,再返回原程序继续 正确地执行下去,这个过程就称为中断。 中断源:引起中断的事件 8086/8088的中断源 非屏蔽中断请求 中断逻辑 INT n 指令 INT0 指令 除法 错误 单步 TF=1 IR0 8259A IR1 可编程 IR2 中断 IR3 控制器 IR4 (PIC) IR5 IR6 IR7 INTR NMI CPU n 4 1 0 系统定时器 键盘 彩色/图形接口 保留(通信) 串行通信接口 保留(ALT打印机) 软盘 保留(打印机) 08 09 0A 0B 0C 0D 0E 0F 8.1.2 中断分类 类型 外部中断 非屏蔽中断NMI 可屏蔽中断INTR CPU不能禁止NMI线上的中断请求,主要用于一些紧急的故障处理 CPU是否做出响应由该外设的中断请求是否被屏蔽和CPU是否允许响应中断决定 内部中断 INT引起的中断 执行INT n指令产生中断,调用中断程序来完成中断功能,操作数n将给出中断的类型 处理CPU某些错误的中断 错误类型有两种:除法错中断和溢出中断 调试程序设置的中断 如单步中断、断点中断、失效、陷井和中止 8.1.3 中断向量表 定义:各种中断处理程序的入口地址放在一起形成一个地址表 00000H 00004H 00008H 003FCH 类型0中断处理 程序入口地址 类型1中断处理 程序入口地址 类型2中断处理 程序入口地址 ……… 类型FF中断处理 程序入口地址 偏移地址IP的值 段地址CS值 中断向量地址=中断类型号*4 共1K字节 存放256个中断 8.1.4 中断过程 中断发生时,硬件自动完成的动作如下: (1)取中断类型号n; (2)标志寄存器(PSW)内容压栈; (3)当前代码段寄存器(CS)内容压栈; (4)当前指令指针(IP)内容压栈; (5)禁止外部中断和单步中断(置IF=0,TF=0); (6)从向量表中取4×n地址的内容送IP,取4×n+2地址中内容送CS; (7)转中断处理程序。 中断与子程序调用的差别: (1)在保护中断现场时,除了保护返回地址CS:IP之外,还保存了标志寄存器PSW的内容。 (2)在中断发生时CPU自动清除了IF和TF 8.1.5 中断优先级 含义:当多个中断源同时申请中断时,CPU按优先级从高到低的次序 依次处理各中断源的请求 优先级从高到低的次序为: 优先级高 非屏蔽中断(NMI) 内部中断 可屏蔽中断(INTR) 优先级低 单步中断 1.中断优先级 2.中断嵌套 含义:正在运行的中断处理程序,又被其他中断源中断 注意:实际使用时,多层中断嵌套要受到堆栈容量的限制 8.1.6 中断指令 外中断是由外设发出中断信号引起的,没有中断指令 软中断指令 格式: INT n 功能:转到相应中断处理程序执行 中断返回指令 格式: IRET 功能:从中断服务程序返回主程序 8.2.1 中断处理程序的编写 1.外中断处理程序 主要步骤: (1)保护现场。主要指各通用寄存器内容和除CS外代码段寄存器 的内容。保护方法一般是压栈。 (2)尽快完成中断处理,以免影响其他外设中断请求。 (3)恢复现场。 (4)中断返回。用IRET指令返回。 2.软中断处理程序 主要步骤: (1)考虑切换堆栈。 (2)及时开中断。
显示全部