第8章输入/输出与中断 讲授要点 I/O指令与/O程序设计的基本方法 "80X86中断系统。 中断服务程序设计的基本方法。 DOS与BOS服务的用途。 DOS环境下的可执行程序。 驻留程序设计(简介)。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 第8章 输入/输出与中断 讲授要点 ▪ I/O指令与I/O程序设计的基本方法。 ▪ 80x86中断系统。 ▪ 中断服务程序设计的基本方法。 ▪ DOS与BIOS服务的用途。 ▪ DOS环境下的可执行程序。 ▪ 驻留程序设计(简介)
8.1输入/输出 1.IO原理 因ⅣO设备种类繁多、工作原理各异,每个ⅣO设备都通过专门的ⅣO接口与系统相连 IO接口包含多个存放数据、状态和控制信息的寄存器,分别以端口地址标识。 数据的输入输岀是通过ⅣO端口实现的。 ■80x86系统通过O指令实现对O端口的读写。 ⅣO接口的功能越强、内部寄存器的种类和数量越多,程序设计就越复杂。 2.IO指令 N:端口输入 OUT:端口输出 3.实例 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 8.1 输入/输出 1.I/O原理 ▪ 因I/O设备种类繁多、工作原理各异,每个I/O设备都通过专门的I/O接口与系统相连。 ▪ I/O接口包含多个存放数据、状态和控制信息的寄存器,分别以端口地址标识。 ▪ 数据的输入/输出是通过I/O端口实现的。 ▪ 80x86系统通过I/O指令实现对I/O端口的读写。 ▪ I/O接口的功能越强、内部寄存器的种类和数量越多,程序设计就越复杂。 2.I/O指令 ▪ IN:端口输入 ▪ OUT:端口输出 3.实例
8.280x86的中断系统 8.2.1中断的基本概念 1.什么是中断? 在CPU执行程序的过程中,由于出现了某个事件,CPU暂停当前程序,而转去执行 处理该事件的程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。 引起中断的事件称作中断源, 处理该事件的程序称作中断服务程序( Interrupt Service Routine,简称SR)。 实现中断的硬件及软件称为中断系统。 2.中断号 80x86系统允许256种中断,每种中断对应0~255之间唯一的编号,称为中断号或中 断类型号。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 8.2 80x86的中断系统 8.2.1 中断的基本概念 1. 什么是中断? 在CPU执行程序的过程中,由于出现了某个事件,CPU暂停当前程序,而转去执行 处理该事件的程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。 引起中断的事件称作中断源, 处理该事件的程序称作中断服务程序(Interrupt Service Routine,简称ISR)。 实现中断的硬件及软件称为中断系统。 2. 中断号 80x86系统允许256种中断,每种中断对应0 ~ 255之间唯一的编号,称为中断号或中 断类型号
3.中断向量与中断向量表 每种中断都有一个与之对应的中断服务程序 在实模式下,将中断服务程序的入口地址称作中断向量, 存放256个中断向量的内存区域称为中断向量表。 每个中断向量占4个字节,用32位分段地址来描述。 中断向量表位于内存地址0000~003FFH,共1KB(256*4B)。 对于中断号n,中断向量所在地址为n~4n+3。例如,0号中断的向量位于地址0000H, l号中断的向量位于地址0004H,等等 中断向量表在系统复位时初始化 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3. 中断向量与中断向量表 每种中断都有一个与之对应的中断服务程序。 在实模式下,将中断服务程序的入口地址称作中断向量, 存放256个中断向量的内存区域称为中断向量表。 每个中断向量占4个字节,用32位分段地址来描述。 中断向量表位于内存地址00000H ~ 003FFH,共1KB(256*4B)。 对于中断号n,中断向量所在地址为n ~ 4n+3。例如,0号中断的向量位于地址00000H, 1号中断的向量位于地址00004H,等等。 中断向量表在系统复位时初始化
4.中断响应 当中断发生时,由硬件自动完成下列工作: (1)标志寄存器 FLAGS进栈。 (2)置IF=0,TF=0。 (3)返回地址(CSP)进栈 (4)根据中断号n,从地址onx4取出4字节的中断向量,低字送IP,高字送CS (5)转去执行中断向量所指的中断服务程序。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4. 中断响应 当中断发生时,由硬件自动完成下列工作: (1)标志寄存器FLAGS进栈。. (2)置IF = 0,TF = 0。 (3)返回地址(CS:IP)进栈。 (4)根据中断号n,从地址0:n×4取出4字节的中断向量,低字送IP,高字送CS。 (5)转去执行中断向量所指的中断服务程序