- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章_输入输出和中断
80X86汇编语言程序设计 华中科技大学计算机学院 2010年6月 第六章 输入/输出和中断 本章的学习内容: 本章学习在几种新的计算机资源下的汇编语言程序设计技术,包括: (1) 输入输出指令的使用格式及功能 (2) 主机与外部设备之间传送数据的方式 (3) 中断的概念及中断处理程序设计 通过本章的学习,有助于深入系统的核心,充分发掘系统的资源,有效发挥汇编语言的优势 第六章 输入/输出和中断 本章的学习重点: (1) 输入输出指令IN、OUT的使用格式及功能 (2) 中断矢量表,中断处理程序的编制方法 第六章 输入/输出和中断 本章的学习难点: (1) 输入输出指令中的地址表示方法 (2) 中断矢量表的作用、存取方法 (3) 中断处理程序的安装、驻留、调试 6.1 输入/输出 输入/输出回顾: 方法:利用“21H” DOS系统功能调用实现输入和输出 特点:不需要考虑I/O处理细节及I/O设备特性,也不必了解主机与外设之间传输数据的方式,只需要按约定准备输入参数 问题: DOS的“21H”系统功能调用无法实现对其它外设的控制,需要运用I/O指令实现对I/O设备的控制 6.1 输入/输出 I/O设备通过接口连接到主机 每个接口由外部设备的一组寄存器组成 设备状态寄存器 设备控制寄存器 数据寄存器 寄存器在主机都对应有一个称为I/O端口的地址编码 6.1 输入/输出 6.1 输入/输出 I/O端口的地址空间 允许设置64K个8位端口或32K个16位端口 I/O端口地址分配,可以查手册 每个外设的所有寄存器都对应一个I/O地址 所有外设的所有寄存器都对应不同的I/O地址 对I/O空间的访问用IN或OUT两个指令 6.1.1 数据传送方式 I/O设备与主机的信息交换传送的信息分为: 控制信息 CPU把控制信息从端口输出到对应外设接口的控制寄存器中,告诉外设应做什么 状态信息 把外设的状态寄存器中的内容送到对应的端口中,以便CPU了解外设状态 数据信息 需要交换的数据(8位、16位) 6.1.1 数据传送方式 I/O设备与主机的信息传送方式分为: 直接控制传送方式 包括无条件传送和查询传送两种,都直接在端口上利用IN和OUT指令传送数据 中断传送方式 在DOS及BIOS层上通过系统功能调用的中断指令实现 直接存储器方式DMA 在端口上,采用通道技术实现 6.1.1 数据传送方式 无条件传送方式:不查询外设状态寄存器的状态,直接用IN或OUT指令实现CPU与外设信息传送 特点:CPU与外设必须同步工作 查询传送方式:查询外设状态和控制寄存器中的内容,确定是否传送 特点:CPU与外设不同步 6.1.1 数据传送方式 中断数据传送方式:解决查询传送方式下,CPU等待外设,浪费大量CPU资源的问题 中断传送方式的优点: 提高CPU效率 可以处理突发事件 提高了计算机工作的灵活性 在中断方式下,程序设计的主要任务:设置中断向量、编制中断处理程序 6.1.2 输入/输出指令 输入:从外部设备向计算机传送信息,也即将外部设备寄存器中的数据送至累加器AL/AX/EAX或主存储器中 输出:从计算机向外部设备传送信息,也即将AL/AX/EAX或主存储器中的数据送至外设寄存器中 6.1.2 输入/输出指令 输入指令IN 语句格式: IN OPD, OPS 功能: (OPS)→累加器OPD 说明: ①当外设寄存器的地址=255时,OPS = 立即数或者DX表示待访问的端口地址。当外设寄存器的地址 255时,OPS只能用DX表示 ② OPD只能是累加器AL、AX或EAX。即: IN AL/AX/EAX,OPS 6.1.2 输入/输出指令 例: IN AL,60H 执行前:(60H) = 11H,(AL) = 0E3H 执行后:(AL) = 11H,(60H) 不变 说明: 60H是键盘将当前按键的键码输入到计算机内的端口的地址。该指令语句从60H号端口中读取一个字节的键码送到AL中,即(60H)→AL 当(DX) = 60H时,IN AL, DX 等价于 IN AL, 60H 6.1.2 输入/输出指令 输出指令OUT 语句格式: OUT OPD, OPS 功能:累加器 (OPS) → OPD 说明: OPD = 立即数 或者 DX OPS只能是累加器AL、AX或EAX 即: OUT OPD, AL/AX/EAX 6.1.2 输入/输出指令 例: OUT 80H, EAX 执行前: (EAX) =,(80H) = 55H, (81H) = 66H,(82H) = 77H,(83H) = 88H 执行后: (80H) = 44H,(81H) = 33H, (82H)=22H,(83H)=11H,(E
文档评论(0)