- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章_输入输出和中断
第六章 输入/输出和中断 本章将介绍: 输入输出指令; 理解中断的概念,学会编写中断处理程序; WIN32编程。 输入和输出指令 思考的问题: (1) 数据怎样在主机与外设之间是怎样传送的? (2) CPU是怎样访问外部设备? (3) 外部设备是怎样与CPU一起工作的? I/O 地址空间 1. 主存空间的回顾:主存是按照8位字节编址的,前面所学的指令、寻址方式都是对主存访问的; 2. CPU对外部设备的访问是通过外部设备寄存器进行的; 3. 系统将所有的外部设备的寄存器进行统一的编址,通过这些地址去访问外部设备; 4. 所有的外部设备寄存器地址组成了I/O空间; 5. I/O地址空间与内存地址空间的关系: (1) 编址方式与主存相同,地址范围0000H~0FFFFH,共64K; (2) I/O空间只能由I/O指令访问(I/O指令可使I/O读写控制线有效),而对其它任何指令的访问一律视为无效。 I/O地址空间与内存地址空间的对比图 0H 0FFFFH I/O地址空间:用I/O指令访问 0H 主存地址空间:用访内指令访问 1. 设备寄存器,又称为端口,具有如下的分类: (1) 设备状态寄存器(状态端口):状态寄存器用来描述当前设备所处的工作状态; (2) 设备控制寄存器(控制端口):存放为控制设备当前工作方式所需的信息; (3) 数据寄存器(数据端口):暂存与CPU交换的数据。 2. CPU对外部设备的访问:每个设备寄存器均需要分配一个I/O空间的地址(端口地址),这样才能被CPU的I/O指令直接访问。 CPU 地址总线 数据总线 控制总线 主存 地址 译码 主存 单元 外部设备 状态端口 I/O 地址 译码 000000H ┆ FFFFFFFFH 0000H ┆ 0FFFFH I/O读写 主存读写 控制端口 数据端口 CPU、主存和外设之间关系示意图 需要注意的问题: 1. 在PC系统主机中,每一台设备至少都有三种设备寄存器: (1) 状态寄存器(状态端口) (2) 控制寄存器(控制端口) (3) 数据寄存器(数据端口) 2. 对于连在系统中的每台外设,相应的接口部件均有一组设备寄存器与之对应,不同设备所需设备寄存器的个数是不同的,功能也各不相同。 3. 编址问题:有的计算机系统中,设备寄存器与主存统一,例如:VAX系列机最高4K为设备寄存器,因而所有对主存访问的指令均可访问设备寄存器,并能作同样操作,简单、灵活、方便、功能强,但缩小了存贮空间。 4. PC机采用端口寻址,即复盖编址方法,除主存空间地址0-0FFFFH外,另有I/O空间地址0-0FFFFH,它实际上是外部设备寄存器的集合,最大为64KB,编址方式与主存相同,与主存空间不同的是:它只能由专门的I/O指令访问I/O空间,而对前面所学的寻址方式和指令的访问一律视为无效。 例如:并行打印机控制器 数据寄存器 378H 状态寄存器 379H 选通位 自动换行 初始化位,正常为1 允许中断 选择位总为1 控制寄存器 37AH 状态寄存器 379H 忙碌位 (0:打印机忙,不能发数据给打印机 ) 肯定,0:肯定脉冲 1:正常输入 纸, 0:有纸 1:无纸 选择,0:未接机 1:连机 错误,0:错 1:正常 CPU对外设的控制,都是通过设备寄存器实现的,例如:只要改变状态寄存器或控制寄存器中某些位的值,就可达到对该设备进行操作和控制的目的。 CPU 外部设备 输入 输出 输入/输出指令: 1. 从信息流向看,在80X86中,输入是指将外部设备数据寄存器中的数据送至累加器AL/AX/EAX中,由IN(INS)指令完成。 2. 输出是指将累加器AL/AX/EAX中的数据送至外设数据寄存器的过程,由OUT(OUTS)指令完成。 ┇ AL/AX/EAX 数据寄存器 打印机 ┇ AL/AX/EAX 数据寄存器 键盘 OUTBUF INBUF 说明: (1)设备寄存器地址大于255时,必须要用DX; (2)主存空间的寻址方式在此均不适用。 ?1 输入指令 格式: IN AL,设备寄存器地址 IN AL,DX IN AX,设备寄存器地址 IN AX,DX
文档评论(0)