四川大学计算机学院-汇编语言幻灯片ch10

上传人:F****n 文档编号:88146224 上传时间:2019-04-19 格式:PPT 页数:167 大小:327KB
返回 下载 相关 举报
四川大学计算机学院-汇编语言幻灯片ch10_第1页
第1页 / 共167页
四川大学计算机学院-汇编语言幻灯片ch10_第2页
第2页 / 共167页
四川大学计算机学院-汇编语言幻灯片ch10_第3页
第3页 / 共167页
四川大学计算机学院-汇编语言幻灯片ch10_第4页
第4页 / 共167页
四川大学计算机学院-汇编语言幻灯片ch10_第5页
第5页 / 共167页
点击查看更多>>
资源描述

《四川大学计算机学院-汇编语言幻灯片ch10》由会员分享,可在线阅读,更多相关《四川大学计算机学院-汇编语言幻灯片ch10(167页珍藏版)》请在金锄头文库上搜索。

1、第十章 输入输出程序设计 学习目的: )掌握计算机接口的概念 )掌握如何和外部设备接口交换信息各种方法,以及控制外部设备正常运转的基本原理 )理解接口设计的大致过程和方法 )掌握端口访问指令的功能、使用方法、寻址方式 )能够理解简单的接口控制程序。 )掌握必要的调用和调用,并且能够在程序设计中正确使用。,10.1 计算机接口的基本构成和工作原理 由于计算机的外部设备种类丰富,处理速度差异较大,设备中使用的信号标准也各不相同,如果使用直接对外部设备进行控制将使计算机系统本身的设计变得非常复杂。 为了方便的管理外部设备,协调外部设备和间速度的差异,消除外部设备和之间信号标准的差异,产生了接口的概念

2、。,()接口的概念 接口,顾名思义,为了使两种本来互相不匹配的事物能够相互沟通而产生的一种中介。(例如,翻译就起到这种作用)。 计算机接口,由特定的电路结构来实现,具有两面性,如下图所示:,计算机接口: 接收总线发来 的地址信号。 接收总线发来 的控制信号和 数据;向总线 发送状态信号 和数据,设备接口: 把设备的输入 信号转换为二 进制数据。 把输出 的二进制数据 转换为设备信 号。 协调外部设备 和的速 度差异,端口: 接口电路中一 组存储单元, 可以使 用指令访问。 包括状态端口 ,控制端口, 输入或输出数 据端口。 和接口 交换信息的枢 纽。,外部设备,计算机系统总线,控制,状态,数据

3、,地址,通常所说的“设备接口”、“计算机接口”等名称都是泛指接口,没有区别二者的具体含义。 从设计角度上讲,设备接口部分的电路设计是针对具体设备的,如果设备的信号机制和工作机理比较复杂,那么相应设备接口的设计也就变得困难,调试过程也比较繁琐。 计算机接口(总线接口)的设计相对简单,按照具体计算机系统给定的总线标准来设计,选择所要使用的各种控制信号、地址信号、数据信号,然后设计相应的电路。 端口是连接设备接口、计算机接口的枢纽,其设计必须考虑两方面的可操作性和适应性。,接口内经常使用的端口 状态端口:一般是只读的端口,为提供接口当前的工作状态,以便判断当前应该针对接口做一些什么操作 控制端口:一

4、般是只写的端口,通过设置控制端口,可以设定接口的工作方式,向接口发送各种操作命令 数据输入端口:如果设备具有输入功能,那么通过把输入数据存放在输入端口,等待来读取 数据输出端口:如果设备具有输出功能,那么把输出数据传送到输出端口作为接口的输出数据 在实际应用中,各类端口可能会在物理上重叠,()接口的设计过程 )设计设备接口、总线接口的逻辑电路图,选择所需要的芯片,包括端口的分析和设计。(这里只是确定接口电路的逻辑结构) )设计接口电路的实际电路图,主要针对接口板卡中具体的线路布局。(这时板卡的实际形状、走线细节、各个芯片在板卡中的实际位置,都已经完全确定)。可以参见后面的图例。 )根据实际电路

5、图制作板卡样品,在板卡样品上插上或者焊接上对应的芯片。(实际的接口电路已经制作完成),)编制针对端口的接口控制程序,该程序要能够完成接口电路的基本数据输入、输出功能。(简单的驱动程序已经编写完成) )把板卡样品插入总线插槽,运行接口控制程序,调试板卡硬件以及控制程序本身,如果程序有错误,那么修改程序;如果接口电路的设计有问题,那么非常麻烦,需要回到设计的第一步重新开始整个设计过程。,()中访问端口的指令 )端口的编址空间 端口和寄存器、内存单元具有相同的特性,同属于存储单元,用于存放二进制信息。 只是这三种存储单元所在的物理位置不同,寄存器位于内部,内存单元位于内部存储器内部,端口位于接口电路

6、当中。,一般来说,在各种计算机系统中,寄存器具有独立的编址空间。 在汇编语言中,对寄存器地址的引用和对内存单元地址的引用有着明显的差别,这种差别反映了二者具有不同的编址空间。 对于端口来说,有统一编址和独立编址两种方式,可能在不同的计算机系统中,使用不同的编址方式。,统一编址方式是指内存单元和端口共存于同一个地址空间内。 这种方式需要牺牲一部分内存地址作为端口的地址,端口和内存单元不会出现重复的地址。 如果采用这种编址方式,访问内存单元和端口没有任何区别,使用的指令、寻址方式、地址表示形式可以完全一致,唯一的区别就是具体逻辑地址的差异。,独立编址方式是指端口的地址和内存单元的地址在不同的两个地

7、址空间。 这种编址方式中,内存单元地址和端口地址毫不相干,二者可能出现重复的地址。 访问内存单元和端口需要使用不同的指令,不同的控制信号,由不同的指令来区别这两个完全不同的地址空间。,在系统中,端口主要采用独立编址方式。 控制信号方面,使用信号表示读操作、使用信号表示写操作,同时使用信号区别两个地址空间,该信号等于时,表示访问内存单元,等于时表示访问端口。 指令方面,访问端口和访问内存单元使用两套不同的指令,访问内存单元的指令执行时会使信号为,访问端口的指令执行时会使该信号为。,说主要采用独立编址方式,是因为有特殊情况存在。 一般来说,在接口中具有独特功能的存储单元是经典的端口。 在接口中拥有

8、连续地址的大块存储单元一般没有被看作端口(例如显示存储器)。这种位于接口中的大块存储部件被看作内存单元的一种。 在中,对于显存的访问和普通内存的访问没有区别,采用统一编址方式。在访问显存的时候,需要牺牲一部分内存空间。,)访问端口的指令 读端口指令:把端口数据读入的寄存器中。 , , 上面这种格式为直接寻址方式,是端口地址,范围为到。, , , 间接寻址方式,端口地址由寄存器的内容给出,变化范围为到。 系统中,最多可以访问个端口。,写端口指令:把寄存器中的数据送到端口保存。 直接寻址方式: , , 间接寻址方式: , , 系统中,端口寻址方式只有直接寻址和间接寻址两种,比内存单元的寻址方式少得

9、多。 注意,系统中对端口访问没有段基值的概念,生成物理地址时固定使用作为段基值,因为端口空间为,正好是一个段的大小,10.2 接口的控制方式 (1)程序控制方式 编制程序对接口进行控制 在这种控制方式下,计算机与外设之间的信息交换完全在程序的控制下进行,在什么时刻与什么样的端口交换数据完全由应用程序决定 程序控制方式按照其数据传送特征,又可以分为两种类型,)无条件传送方式 不需要了解接口是否已经准备好而直接进行数据交换的方式 这种控制方式假定接口总是已经准备好数据交换,对于输入设备,假定它始终存在输入数据;对于输出设备,假定它始终能够接收输出数据 这种接口控制适用于高速的外部设备(反应速度比块

10、),或者简单设备,这种方式是主动进行数据交换,什么时刻以什么方式进行数据交换,完全由执行的程序来决定,接口完全是被动的,)程序查询方式 这种方式在从接口读取输入数据或者把输出数据发送到接口之前必须先检查接口是否已经准备好 这种查询过程是通过查询接口中状态端口来完成的,使用循环程序结构,不断从状态端口读取数据,判断当前状态是否为“准备好” 如果设备始终没有准备好,那么就不断执行这段循环查询程序;如果已经准备好,那么从数据输入端口读入所需要的数据,这种接口控制方式仍然是主动进行数据交换,接口只是提供一些状态信息给的处理过程提供参考,何时采用何种方式交换数据仍然由决定 这种方式适合于慢速设备(处理速

11、度总是比慢,例如键盘、鼠标) 查询过程有如下两种:,设备是否 准备好,数据交换,用这种循环结构进行数据交换, 只能针对当前接口进行 操作,其他任何操作都不能执 行,除非退出这个接口控制程 序。,设备是否 准备好,进行其他处理, 或者执行其他 程序(如果操 作系统支持),进行数据交换,用这种循环结构进行数据交换, 可以有一定的时间处理 其他过程甚至执行其他程序, 但是这是以延缓数据交换为代 价的。,这里举一个实际的例子,包括了无条件传送和程序查询两种接口控制方式,分别针对两个特性不同的硬件设备。 例. 假设有一个的小键盘,和一个的段显示器,要求设计大致的硬件逻辑并编程实现如下功能:按下一个数字键

12、后,对应数字显示到低位上,低位原来的显示内容移到高位(如图),硬件逻辑: ()键盘设计:按照最简单的原理设计一个的键盘,其工作原理如下图所示。, bit, bit,4 bit,4 bit,1,1,1,1,(0),(1),(2),(3),(0),(1),(2),(3),(0),(1),(2),(3),1,0,1,1,1,1,1,1,1,1,0,1,(0),(1),(2),(3),端口操作解释: )写入操作(针对控制端口) 向端口写入(全):检测每一个键是否出现“按下”的状态。 向端口写入(高:,低:):检测第列键中是否出现“按下”的状态。 向端口写入(高:,低:):检测第行和第一列键中是否出现“

13、按下”状态。,)读入操作(针对状态兼数据输入端口) 读取号端口的信息,可以检测键盘中有无“按下”的键,通过检测高位和低位中“”的位置,可以确定具体哪一个键被按下。 注意键盘的使用限制:任何时刻至多只能有一个键处于“按下”状态,否则无法判断具体被按下键的位置(只针对这里设计的键盘)。,()显示器:硬件逻辑设计如下图所示。,译码器,译码器,bits,bits,4 bits,4 bits,4bits,4bits,8bits, 31H, 读写,高,低,显示由译码器 的位输出控 制,表示对 应发光管发光, 表示对应发 光管熄灭。译 码器的位输 出称为显示代 码,译码器把bits 表示的位 进制数转换为对

14、 应的显示代码,0,1,2,3,4,5,6,0,1,4,3,6,“2” 的显示代码:,可以考虑没有译码器时把十六进制数转换为对应显示代码的方法,七段显示器无法区别“”和“”,必须添加更多的发光管,端口访问解释: 向号端口写入位数据,低位数值为低位显示器所要显示的一位进制数,高位数值对应高位显示器所要显示的一位进制数。 从号端口读入位数据,低位和高位分别为当前两位显示器所显示的一位进制数。,接口控制方式分析: ()键盘控制:由于键盘的输入数据不是任何时候都有的,需要判断当前是否有键按下,显然适合使用程序查询方式进行控制。 ()显示控制:显示器是简单的设备,它总是可以立即显示送来的数据,总是处于“准备好”的状态,适合使用直接传送方式进行控制。,技术细节: 如果读取号端口,检测到其中出现了为“”的数据位,对应键盘的状态可能有两种: )键盘抖动:电路上信号的抖动、键盘的物理抖动、按键的手指抖动,这些都是抖动现象,特征是信号不稳定,“”数据位持续的时间较短,一般是几个或者几十个。 )按键:用户确实按下了键盘中的某一个键,特征是信号稳定,“”数据位持续的时间较长,一般是几百个。 解决方法:第一次检测到端口的“”数据位以后,延时0.2()左右,再一次检测端口中的“”数据位是否存在,如果仍然存在,解释为“按键”状态

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号