汇编语言程序设计第八章.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计第八章要点

CPU MEM I/O设备 三总线 I/O接口 第13讲(第13周):I/O设备的数据传送方式一 第八章、输入输出程序设计 第13讲:I/O设备的数据传送方式一 前一讲 后一讲 总目录 §8.1、I/O设备的数据传送方式 8.1.1、CPU与外设 任何外部设备与CPU通信必须通过一个硬件“接口”或“控制器”;这些接口或控制器都必须能够支持输入设备指令IN/OUT与外部设备交换信息,它们必须按照不同的端口地址分别传送以下三种不同性质的信息: 1.控制信息?由CPU发给I/O接口,有的再由I/O接口送给I/O设备,通知接口和 I/O设备完成哪些工作(如:CPU发给打印机接口的启动信号); 2.状态信息?由I/O设备经接口传送给CPU,告知CPU当前设备所处的状态; 输入设备?用”准备好(READY)”信号表示外设是否已准备好输入数据; 输出设备?用“忙(BUSY)”信号表示外设是否处于空闲状态; 3.数据信息?由I/O设备经接口传给CPU或由CPU经接口传送I/O设备的真正需要 交换的各种数据。 注意?接口与I/O设备之间的数据信息可以是并行的数据(并行口),也可以 是串行口(串行口)。 8.1.2、CPU与I/O设备之间的信息传送方式 第一种方式?直接存储器存取方式(简称“DMA方式”或“成组传送方式”) 第二种方式?程序直接控制方式(简称“程序控制方式”) 第三种方式?中断传送方式(简称“中断方式”) 第13讲(第13周):I/O设备的数据传送方式一 前一讲 后一讲 总目录 8.1.3、直接存贮器存取方式(DMA方式 ) 1.传送特征? ①.用于速度非常快的I/O设备;如磁盘、AD转换器等,如果这些设备用另外二种方式则容易丢失数据; ②.能够实现I/O设备直接和内存之间进行成批数据的快速传送,即:每一个字节的传送不必经过CPU处理,I/O数据一到接口就直接送往存储器,接口和DMA 控制器同样可以直接从内存中取出一个字节送给I/O设备; ③.传送数据前必须经过初始化DMA控制器并申请总线使用权; 2.DMA控制器的主要构成?四个寄存器,每个寄存器都有一个地址 [1].控制寄存器?由CPU写入“控制字”,由此得知是输出还是写入等; [2].状态寄存器?由I/O设备写入“状态字”,由此得知I/O设备当前状态; [3].地址寄存器?存放的是要传送的数据块首地址(内存地址);每传送一次自动增1; [4].字节计数器?存放的是要传送的数据块中的字节个数(即数据长度);每传送一次自动减1; 第13讲(第13周):I/O设备的数据传送方式一 前一讲 后一讲 总目录 3.DMA方式的基本工作过程: [1].DMA申请总线?DMA控制器接受到I/O指令后检测到I/O设备状态,然后向CPU发出HOLD信号申请总线使用权; [2].CPU释放总线?CPU根据自身情况向DMA控制器返回HOLD响应信号,然后交出总线使用权; [3].打开内存?DMA的地址寄存器向地址总线发送地址信号; [4].数据传送?传送的字节数据通过数据总线传送; [5].地址值增1?地址寄存器自动增1指向下一个字节; [6].字节计数值减1?字节计数器自动减1; [7].循环继续?若计数器不为0则转向[3] ; [8].DMA释放总线?DMA撤销总线请求信号HOLD而返还总线使用权,传送结束。 第13讲(第13周):I/O设备的数据传送方式一 前一讲 后一讲 总目录 8.2.1、I/O端口 1.任何I/O设备的接口由一组寄存器组成,每个寄存器都被分配一个I/O端口地址,即I/O端口号,I/O端口有如下三种寄存器: [1].数据寄存器?有多个组成,存放数据,作数据缓冲用; [2].状态寄存器?仅一个,存放当前设备的状态信息; [3].命令寄存器?仅一个,存放CPU发来的用以控制接口的命令字; 2.端口地址80×86微机中I/O端口编址采用“独立编址”方式,I/O空间允许设置64K个8位端口或32K(32768)个16位端口。 说明?不同类型计算机的I/O端口号不完全相同,参见P284表8.1实例。 8.2.2、I/O指令回顾?IN和OUT(统一编址计算机系统没有该指令) 1.输入指令IN?数据从外设端口传送给ACC [1].直接寻址?长格式(PORT为8位端口号) IN AL,PORT?字节传送 (AL)?(PORT) IN AX,PORT?字节传送 (AX)?(PORT+1,PORT) IN EAX,PORT?双字传送 (EAX)?(PORT+3,PORT+2,PORT+1,PORT) [2].间接接寻址?短格式(DX中是16

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档