欢迎来到天天文库
浏览记录
ID:33425794
大小:291.00 KB
页数:59页
时间:2018-05-25
《汇编语言程序设计第八章输入输出程序设计课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章输入输出程序设计任课教师:陶雪丽xueli_xl@126.com8/30/20211河南师范大学计算机与信息技术学院本章内容提要I/O设备的数据传送方式程序直接控制I/O方式中断传送方式8/30/20212河南师范大学计算机与信息技术学院8.1I/O设备的数据传动方式1CPU与外设2直接存储器存取(DMA)方式8/30/20213河南师范大学计算机与信息技术学院8.1.1CPU与外设与CPU进行数据交换的,除了存储器外,还有输入输出设备(统称为外设)。输入IN和输出OUT指令,可以从外设读取数据和向外设提供数据。由于外设种类繁多,其工作原理、数据格式、操作
2、时序等各异,所以在处理器与外设之间还有一个协调两者数据传送的逻辑电路,称为输入输出(I/O)接口电路。处理器并不直接操纵外设,而是通过I/O接口来控制外设。8/30/20214河南师范大学计算机与信息技术学院I/O接口电路中的寄存器I/O接口电路呈现给程序员的,是各种可编程寄存器。这些寄存器可以分成三类:数据寄存器——它保存和处理与外设间交换的数据;控制寄存器——处理器通过它对外设进行控制,也称命令寄存器;状态寄存器——外设的当前工作状态通过它向处理器提供。在涉及外设操作的输入输出程序中,各种寄存器以I/O地址(端口)体现;对应三类寄存器分别称为:数据端口、控制端口、
3、状态端口。8/30/20215河南师范大学计算机与信息技术学院CPU与外设数据传送方式程序直接控制传送方式程序查询I/O方式中断传送方式直接存储器存取(DMA)方式8/30/20216河南师范大学计算机与信息技术学院8.1.2直接存储器存取(DMA)方式主要由硬件DMA控制器实现其传送功能。DMA(directmemoryaccess)方式,也称为成组数据传送方式。主要用于一些高速的I/O设备。如磁带、磁盘、A/D等设备。传送数据时,每个字节一到达端口,就直接从接口送到存储器;同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到I/O设备去。8/30/202
4、17河南师范大学计算机与信息技术学院DMA工作原理DMA控制器(intel8237A)一般包括四个寄存器:控制寄存器状态寄存器地址寄存器字节计数器在信息传送前,应初始化这些寄存器。地址寄存器←要传送的数据块首地址;字节寄存器←要传送的数据长度(字节数);状态寄存器←控制字,指出数据是输入还是输出,并启动DMA操作。每个字节传送后,地址寄存器加1,字节计数器减1。8/30/20218河南师范大学计算机与信息技术学院DMA传送步骤由系统完成以下步骤:⑴DMA控制器向CPU发出HOLD信号,请求使用总线。⑵CPU发出响应信号HOLD给DMA控制器,并将总线让出,这时CPU放
5、弃了对总线的控制,而DMA控制器获得了总线控制权。⑶传输数据的存储器地址(在地址寄存器中)通过总线发出。⑷传输的字节数通过数据总线进行传送。⑸地址寄存器加1,以指向下一个要传送的字节。⑹字节计数器减1。⑺如字节计数器非0,转向第3步。⑻否则,DMA控制器撤销总线请求信号HOLD,传送结束8/30/20219河南师范大学计算机与信息技术学院8.2程序直接控制I/O方式1I/O端口2I/O指令3I/O程序举例8/30/202110河南师范大学计算机与信息技术学院8.2.1I/O端口80x86中,I/O端口独立编址,允许设置64K(65535)个8位端口,或32K(3276
6、8)个16位端口。CPU和内存通过I/O端口与外设进行通信。表8.1列出了部分端口地址(十六进制)。8/30/202111河南师范大学计算机与信息技术学院8.2.2I/O指令IN/OUT指令,即可传送字节又可传送字,使用的寄存器必须是AL或AX。直接寻址:寻址0~255号端口。间接寻址:所有端口,使用DX寄存器。INAX,28HMOVDATA_WORD,AXINAL,27HTESTAL,00000100HJNZERRORMOVDX,126HINAL,DX;端口126HORAL,80H;第7位控制成组数据传送OUTDX,AL8/30/202112河南师范大学计算机与信息
7、技术学院8.2.3I/O程序举例例8.1发声子程序SOUND例8.2查询方式打印字符程序PRT_CHAR例8.3查询方式控制数据输入8/30/202113河南师范大学计算机与信息技术学院8.3中断传送方式18086的中断分类2中断向量表3中断过程4中断优先级和中断嵌套5中断处理过程8/30/202114河南师范大学计算机与信息技术学院中断的相关概念中断是CPU和外设进行数据传送的有效办法。它可以避免因反复查询外设状态而浪费的时间,从而提高CPU的效率。中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。中断源——引起中断的事件。外部中断(硬
此文档下载收益归作者所有