- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章汇编语言
80x86汇编语言程序设计 第8章 输入/输出与中断 讲授要点 8.1 输入/输出 8.2 80x86的中断系统 8.2.1 中断的基本概念 8.2.2 中断指令 8.2.3 中断分类 8.3 DOS与BIOS服务 8.4 DOS环境下的可执行程序 8.4.1 程序段前缀PSP 8.4.2 .EXE文件与.COM文件 8.5 中断服务程序设计 8.5.1 中断服务程序(ISR)设计的基本方法 8.5.2 驻留程序设计 8.5.3 键盘程序设计 本章小结 * * I/O指令与I/O程序设计的基本方法。 80x86中断系统。 中断服务程序设计的基本方法。 DOS与BIOS服务的用途。 DOS环境下的可执行程序。 驻留程序设计(简介)。 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.实例 1. 什么是中断? 在CPU执行程序的过程中,由于出现了某个事件,CPU暂停当前程序,而转去执行处理该事件的程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。 引起中断的事件称作中断源, 处理该事件的程序称作中断服务程序(Interrupt Service Routine,简称ISR)。 实现中断的硬件及软件称为中断系统。 2. 中断号 80x86系统允许256种中断,每种中断对应0 ~ 255之间唯一的编号,称为中断号或中断类型号。 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)返回地址(CS:IP)进栈。 (4)根据中断号n,从地址0:n×4取出4字节的中断向量,低字送IP,高字送CS。 (5)转去执行中断向量所指的中断服务程序。 1. 中断调用指令:INT n 功能描述: (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的主要区别 CALL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。 过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。 对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。 INT总是段间调用。 INT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈。 1. 中断分类 中断可分为下列3类。 (1)硬件中断(或称外部中断):由外部硬件触发的,如键盘按键等。 80x86系统的硬件中断包括两类:可屏蔽中断与非屏蔽中断(中断号为2)。 不能被禁止的中断称为非屏蔽中断。可以被禁止的中断称为可屏蔽中断。 CPU对硬件中断的响应时机是在一条指令执行完之后,中断处理后返回到下一条指令继续执行。 (2)陷入(又称为软件中断):在程序中执行中断调用指令引发的。 当陷入处理程序用IRET指令返回后,程序从引起陷入的下一条指令继续执行。 陷入的主要目的是为应用程序提供系统服务,如最常用
文档评论(0)