人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第8章 输入/输出与中断

第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)转去执行中断向量所指的中断服务程序

8.2.2中断指令 1.中断调用指令:INTn 功能描述 (1)标志寄存器FLAG进栈 (2)置=0,TF=0 (3)CSP(即下一条指令地址, BOUND除外)进栈 (4)根据中断号n(INTO与 BOUND分别为4和5),以n×4为索引,查中断向量表,将相应 地址处的双字送CSP。 对标志位的影响:I=TF=0,不影响其它标志。 2.中断返回指令:IRET 功能描述:从堆栈弹出一个双字到CS:P,再弹出一个字到 FLAGS 对标志位的影响:由栈中弹出值确定。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 8.2.2 中断指令 1. 中断调用指令:INTn 功能描述: (1)标志寄存器FLAGS进栈。 (2)置IF = 0,TF = 0。 (3)CS:IP(即下一条指令地址,BOUND除外)进栈。 (4)根据中断号n(INTO与BOUND分别为4和5),以n×4为索引,查中断向量表,将相应 地址处的双字送CS:IP。 对标志位的影响:IF = TF = 0,不影响其它标志。 2. 中断返回指令:IRET 功能描述:从堆栈弹出一个双字到CS:IP,再弹出一个字到FLAGS。 对标志位的影响:由栈中弹出值确定

3.INT与CALL的主要区别 ■CAL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。 过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。 ■对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。 ⅣNT总是段间调用。 NT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3. INT与CALL的主要区别 ▪ CALL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。 ▪ 过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。 ▪ 对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。 ▪ INT总是段间调用。 ▪ INT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈

8.2.3中断分类 1.中断分类 中断可分为下列3类。 (1)硬件中断(或称外部中断):由外部硬件触发的,如键盘按键等。 80x86系统的硬件中断包括两类:可屏蔽中断与非屏蔽中断(中断号为2)。 不能被禁止的中断称为非屏蔽中断。可以被禁止的中断称为可屏蔽中断。 CPU对硬件中断的响应时机是在一条指令执行完之后,中断处理后返回到下一条指令 继续执行。 (2)陷入(又称为软件中断):在程序中执行中断调用指令引发的。 当陷入处理程序用RE指令返回后,程序从引起陷入的下一条指令继续执行。 陷入的主要目的是为应用程序提供系统服务,如最常用的ⅠNT2lH。 (3)异常:程序执行过程中因出现错误等内部意外事件而引起的中断。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 8.2.3 中断分类 1. 中断分类 中断可分为下列3类。 (1)硬件中断(或称外部中断):由外部硬件触发的,如键盘按键等。 80x86系统的硬件中断包括两类:可屏蔽中断与非屏蔽中断(中断号为2)。 不能被禁止的中断称为非屏蔽中断。可以被禁止的中断称为可屏蔽中断。 CPU对硬件中断的响应时机是在一条指令执行完之后,中断处理后返回到下一条指令 继续执行。 (2)陷入(又称为软件中断):在程序中执行中断调用指令引发的。 当陷入处理程序用IRET指令返回后,程序从引起陷入的下一条指令继续执行。 陷入的主要目的是为应用程序提供系统服务,如最常用的INT 21H。 (3)异常:程序执行过程中因出现错误等内部意外事件而引起的中断

2.硬件中断、异常和陷入的区别 硬件中断与当前指令的执行无关,通常是由外部事件(如IO设备的数据传送请 求、时钟中断等)所引起的,它的发生与指令的执行是异步的 异常与陷入是由指令的执行而引起的同步事件,与当前指令密切相关。其中, 陷入是程序员预期要执行的处理程序,即INT指令。 ■硬件中断或异常的服务程序是由硬件或异常条件自动触发的,不应在程序中以 INI指令直接调用,如NT9。 3.可屏蔽中断INTR (1)定时器中断:NT8 系统主板包含一个定时器芯片(如8254),约每5毫秒(1/182秒)产生一次中断。 (2)键盘中断:INT9 对于键盘的每个按键动作(按下与释放),都会触发键盘中断。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 2.硬件中断、异常和陷入的区别 ▪ 硬件中断与当前指令的执行无关,通常是由外部事件(如I/O设备的数据传送请 求、时钟中断等)所引起的,它的发生与指令的执行是异步的。 ▪ 异常与陷入是由指令的执行而引起的同步事件,与当前指令密切相关。其中, 陷入是程序员预期要执行的处理程序,即INT指令。 ▪ 硬件中断或异常的服务程序是由硬件或异常条件自动触发的,不应在程序中以 INT指令直接调用,如INT 9。 3.可屏蔽中断INTR (1)定时器中断:INT 8 系统主板包含一个定时器芯片(如8254),约每55毫秒(1/18.2秒)产生一次中断。 (2)键盘中断:INT 9 对于键盘的每个按键动作(按下与释放),都会触发键盘中断

4.中断控制器与CPU的通信端口 中断控制器通过端口20H和21H(用于RQ0~7)以及0AOH和OAH(用于RQ8 15)与CPU通信。 其中,端口20H与0AOH对应于中断命令寄存器,端口2H与0AH对应于中断屏蔽 寄存器。 5.发送中断结束命令的方法 向中断命令寄存器输出字节20H。如下所示。 mov al. 20h out 20h,al;对于RQ8~15,使用端口0AOH 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4. 中断控制器与CPU的通信端口 中断控制器通过端口20H和21H(用于IRQ 0 ~ 7)以及0A0H和0A1H(用于IRQ 8 ~ 15)与CPU通信。 其中,端口20H与0A0H对应于中断命令寄存器,端口21H与0A1H 对应于中断屏蔽 寄存器。 5. 发送中断结束命令的方法 向中断命令寄存器输出字节20H。如下所示。 mov al, 20h out 20h, al ; 对于IRQ 8 ~ 15,使用端口0A0H
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第7章 汇编语言的扩展.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第6章 过程.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第5章 基本控制结构.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第4章 汇编语言程序格式.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第3章 80x86指令系统.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第2章 80x86计算机系统组织.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 《数据结构》课程教学资源:第一章 绪论.ppt
- 《数据结构》课程教学资源:第五章 数组和广义表.ppt
- 《数据结构》课程教学资源:第九章 查找.ppt
- 《数据结构》课程教学资源:第三章 栈和队列.ppt
- 《数据结构》课程教学资源:第七章 图.ppt
- 《数据结构》课程教学资源:第四章 串 4.3串的模式匹配算法 44串操作应用举例.ppt
- 《数据结构》课程教学资源:期末复习.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第9章 MATLAB符号计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第7章 MATLAB解方程与函数极值.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第6章 MATLAB数据分析与多项式计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第5章 MATLAB绘图.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第4章 MATLAB文件操作.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)目录.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第5章 MCS - 51单片机的中断.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第6章 MCS - 51单片机内部定时器/计数器及串行接口.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第1章 微型计算机基础.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第2章 单片机的硬件结构和原理.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第3章 MCS - 51单片机指令系统.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第4章 汇编语言程序设计简介.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第7章 单片机系统扩展与接口技术.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估 3.1 安全漏洞概述 3.2 微软操作系统安全性分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第二章 了解TCP/IP.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.2)Windows系列风险分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.3)UNIX系统的安全分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.4)风险分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护(6.1)安全策略与安全网络设计.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第八章 网络安全基础设施.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护 6.6 入侵检测 6.7 snorts系统.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护 6.3 防火墙 6.4 VPN 6.5 蜜罐技术.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护(6.2)路由器.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第七章 网络防护 7.1 Window 2000的安全管理 7.2 UNIX的安全管理.ppt