第8次课+输入输出程序的设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8次课 输入输出程序设计 8.1 I/O设备的数据传送方式 8.1.1 CPU 与外设 1、每个输入输出设备都要通过一个硬件接口或控制器和CPU相连 2、输入输出指令IN、OUT实现接口和控制器与外部设备交换信息 三种信息 三种信息:控制、状态和数据信息,按不同的端口地址分别传送 控制信息:输出到I/O接口,告诉接口和设备要做什么 状态信息:从接口输入,表示I/O设备当前的状态 数据信息:I/O设备和CPU真正要交换的信息 IBM PC的输入/输出方式 (1)程序直接控制I/O方式:用IN和 OUT指令直接在端口级上处理输入输出 (2)中断传送方式 (3)DMA方式 8.1.2直接存储器存取方式 直接存储器存取DMA:也称为成组数据传送方式 适用:一些高速的I/O设备,如磁带、磁盘、模数转换器(A/D)等设备 DMA方式能使I/O设备直接和存储器进行成批数据的快速传送 DMA控制器 一般包括四组寄存器: 状态控制寄存器 数据寄存器 地址寄存器 字节计数器 DMA传送概述 完成 DMA传送的步骤 1.DMA控制器向CPU发出HOLD信号请求使用总线 2.CPU发出响应信号HOLD给DMA控制器,并将总线让出,这时CPU不再使用总线,而DMA控制器获得总线控制权 3.传输数据的存储器地址(在地址寄存器中)通过地址总线发出 DMA传送概述 4.传输的数据字节通过数据总线进行传送 5.地址寄存器增 1 6.字节计数器减 1 7.如字节计数器非0,转向第3步 8.否则,DMA控制器撤消总线请求信号HOLD,传送结束 8.2 程序直接控制I/O方式 8.2.1 I/O端口 1、接口寄存器组、I/O端口地址编码 接口:每个接口由一组寄存器组成 地址编码:这些寄存器都分配有一个称为I/O端口的地址编码 2、I/O接口寄存器: 数据寄存器:用作数据缓冲 状态寄存器:用作保存设备和接口的状态信息,供CPU对外设进行测试 命令寄存器:用来保存CPU发出的命令以控制接口和设备的操作 端口号、地址空间 3、地址空间 总 64KB 端口号:端口寄存器的编号 端口编址:在一个独立的地址空间中 端口设置:可设置 64K(65536)个8位端口或32K(32768)个16位端口 386及以后机型有32位端口 00-0F: DMA芯片 8237A 20-21 中断控制器 8259A 40-48 时钟/定时器 60-63 可编程序外围接口芯片(PPI)8255A 70-71 CMOS RAM 200-20F 游戏适配器 278-27A 3号并行口(LPT2打印机 ) 2F8-2FE 2号串行口(COM2) 32D-32F 硬磁盘控制器 378-37A 并行接口打印机适配器 3B0-3BF 单色显示和并行打印机适配器 3D0-3DF 彩色/图形适配器CGA 3F0-3F7 软磁盘控制器 3F8-3FE 异步通讯适配器(COM1) 8.2.2 I/O指令 I/O指令:IN、OUT 用于I/O端口与CPU之间的通信 IN和OUT:既可传送字节也可传送字 传送方式:有直接端口寻址和间接端口寻址两种方式: 长格式:直接端口寻址 短格式:间接端口寻址 I/O指令中使用的寄存器必须是AL或AX IN、OUT:I/O端口与CPU之间的通信 IN输入指令格式 长格式为: IN AL,PORT(字节) IN AX,PORT(字) IN EAX,PORT(双字) 执行的操作: (AL) ←(PORT)(字节) (AX) ←(PORT+1,PORT)(字) (EAX) ←(PORT+3,PORT+2, PORT+1,PORT) 确定是否为字节、字、双字的依据是源操作数 例:IN EAX,45H PORT号至多8为位,即:0~255或00H~FFH 例:IN AX,45H 短格式 IN AL,DX(字节) IN AX,DX(字) IN EAX,DX(双字) 执行的操作: (AL) ←((DX))(字节) (AX) ←((DX)+1,(DX))(字) (EAX) ←((DX)+3,(DX)+2, (DX)+1,(DX))(双字) 例:MOV DX,28H IN AX,DX 或如 IN EAX,DX OUT 输出指令 长格式为: OUT PORT,AL(

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档