(3)DMA控制方式(直接存储器存取方式)

上传人:飞*** 文档编号:51487111 上传时间:2018-08-14 格式:PPT 页数:50 大小:247KB
返回 下载 相关 举报
(3)DMA控制方式(直接存储器存取方式)_第1页
第1页 / 共50页
(3)DMA控制方式(直接存储器存取方式)_第2页
第2页 / 共50页
(3)DMA控制方式(直接存储器存取方式)_第3页
第3页 / 共50页
(3)DMA控制方式(直接存储器存取方式)_第4页
第4页 / 共50页
(3)DMA控制方式(直接存储器存取方式)_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《(3)DMA控制方式(直接存储器存取方式)》由会员分享,可在线阅读,更多相关《(3)DMA控制方式(直接存储器存取方式)(50页珍藏版)》请在金锄头文库上搜索。

1、l(3)DMA控制方式(直接存储器存取方式)l和程序控制、中断控制不同,DMA控制方式对接口采用全硬 件的控制机制,不执行任何程序。l原理:l一个设备接口试图通过总线直接向另一个设备发送数据(一般 是大批量的数据),它会先向CPU发送DMA请求信号,CPU 收到该信号后,会按DMA信号的优先级和提出DMA请求的先 后顺序响应DMA信号。lCPU对某个设备接口响应DMA请求时,会让出总线控制权, 提出请求的设备接口可以通过总线直接进行数据传送(不通过 CPU),数据传送完毕后,设备接口会向CPU发送DMA结束 信号,交还总线控制权。l注意:DMA请求信号可能会打断一条指令的执行,使它暂时 停止执

2、行,数据传送完毕后才恢复该指令的执行。l10.3 系统功能调用l操作系统为了使用户能够更方便的使用硬件设备,使 用户在不了解硬件具体工作原理的情况下也能够使用 硬件设备,都会提供丰富的系统功能调用。l通过使用系统功能调用,用户不需要了解接口的工作 原理,不需要熟悉接口中各个端口的功能和使用方法 ,只需要传递系统调用需要的入口参数,按照规定取 得出口参数,就可以完成几乎所有的硬件操作。l在汇编语言这个开发平台上,系统功能调用是以中断 服务程序的形式给出来的。用户通过使用指令 执行系统调用。l系统调用就是中断当中的软中断,它的程序组 织形式就是中断服务程序,中断服务程序入口 地址也是存放在中断向量

3、表当中。l系统调用分为两个层面,低层为调用 ,高层为调用。调用建立在 调用的基础之上。l由于早期的硬件设备种类比较单一,所以底层 的、常用的硬件接口控制程序(硬中断服务程 序、系统调用)都被固化在 芯片中。抽象级别更高的,使用更方便的硬件 控制程序(调用)由操作系统实现。l如果是用户自己设计的硬件接口,相应的设备 驱动程序(包括硬中断服务程序、系统调用) ,都只能通过中断向量表中未被使用的中断类 型号。l下面介绍一些常用的调用(主要介绍 ):l(一)有关键盘输入和字符显示的调用l()单字符输入l)号子功能l , ;指定功能号 l ;系统调用l从键盘读取一个字符,执行指令后,只 要用户不按键,那

4、么始终等待,用户按下一个 键以后,系统调用把该键对应的码 送到保存,并且送到显示器显示,然后退 出系统调用,返回主程序l号子功能可以检测键,如 果用户在系统调用执行时按下, 那么系统调用会终止主程序,返回操作系统l能够实现单字符输入的还有号调 用的、号子功能。l07H:和号子功能大致相同,只是不回 显键入的字符,也不检测键。l:和号子功能大致相同,要检测 键,但是不回显键入的字符。l:这个子功能既能用于键盘输入,又能 用于显示输出。初始化入口参数时,把寄 存器的内容置为,表示输入功能。l它会先检测键盘的输入缓冲区(队列, 硬中断服务程序把接收到的键码按先后顺序存 放于此)是否有输入数据,如果有

5、输入数据, 取出队首的字符并送到保存;如果没有输 入数据,把保存到。l子功能不会等待用户按键,适合用于键 盘状态的检测。l单个字符输入的例子:参见教材的例 .4.1l()字符串输入l号子功能:从键盘上接收一个字符串,保存到 入口参数指定的缓冲区中,并在显示器上同步回显用 户输入的字符串。l用户在缓冲区的第个字节给出输入字符串的最大字 符数,如果在输入时已经达到规定最大字符数,该子 功能会停止接收键入,并等待用户键入最后的回车键 。l在执行子功能时,只要按下回车键就表示字符 串输入完毕。l字符串输入完毕后,系统调用会把实际输入的 字符数填入缓冲区的第个字节。l注意:输入字符串内容是从缓冲区的第个

6、字 节开始存放的,见教材的图 。l从键盘输入字符串可以通过单个字符输入的功 能调用和循环程序结构结合实现;也可以通过 子功能调用来实现。l例子:参见教材的例.4.2l()清除键盘缓冲区l号子功能:清除键盘缓冲区,然后执行()指定的 子功能(可以为、) 。l使用这个子功能主要是为了在执行其他子功能前消除以前的键 盘输入。l例如: l, l, ll清除键盘缓冲区以后执行号子功能,从键盘接收一个新 的按键。l()检验键盘状态l:检验键盘的当前状态,如果有键被按下,把 保存到;如果没有键被按下,把保存到。l如果需要查询键盘的状态,或者以查询方式控制键盘,可以使 用这一个子功能。l下面是一个等待按键的子

7、程序:l:, l l l l l()显示单个字符l:用户把需要显示的码存放到 中,功能号送入中,然后调用号 系统调用,就可以在当前光标位置显示这个字符 。l这个子功能在执行时要检测按 键,如果在执行子功能时,用户已经按下了 ,那么它会结束主程序,返回操作系统 。l, l,要显示的码 ll:如果入口参数中存放的不是 ,而是一个码,那么它将在当 前光标位置显示这个字符。这个子功能不检测 按键。l ,l ,要显示的码l l字符显示的例子:教材例.4.3l()显示字符串l:显示指定位置的字符串,字符串一定 要以符号结尾l ,l ,l l默认字符串在指向的段中 l例 从键盘输入一个字符串,大写字母变小写

8、字母, 小写字母变大写字母,然后显示出来lDATASEGMENT lMAXLENDB20 lACTLEN DB? lSTRING1DB21DUP(0) lNLCRDB0AH,0DH,$ lDATAENDSlSTACK1 SEGMENT STACK lDW30H lSTACK1 ENDSlCODE SEGMENTlASSUME SS:STACK1,CS:CODE,DS:DATAlBEGIN: MOVAX,DATAlMOVDS,AXlMOVAH,0AHlLEADX,MAXLENlINT21HlMOVBL,ACTLENlXORBH,BHlMOVSTRING1BX,$lMOVCL,ACTLEN lXO

9、RCH,CH lMOVSI,0 lLOP:MOVAL,STRING1SI lCMPAL,41H lJAECON1 lJMPNEXT1 lCON1:CMPAL,5AH lJBECON2 lJMPNEXT1 lCON2:ADDSTRING1SI,20H lJMPNEXT2 lNEXT1:CMPAL,61H lJAECON3 lJMPNEXT2 lCON3:CMPAL,7AH lJBECON4 lJMPNEXT2 lCON4:SUBSTRING1SI,20H lNEXT2:INCSI lLOOPLOPlMOVAH,09HlLEADX,NLCRlINT21HlMOVAH,09HlLEADX,STRIN

10、G1lINT21HlMOVAH,4CHlINT 21HlCODE ENDSlENDBEGINl(二)基于文件操作的磁盘功能调用l()基于(File Control Block)的磁盘功能 调用l)的概念l是由操作系统维护的一种数据结构,用户程序 通过修改中特定的字段,结合相应的系 统调用,可以完成建立文件、打开文件、读文件记录 、写文件记录、关闭文件等基本的文件操作。l的数据组织可以参照教材表 。l)使用进行文件操作的原理l把文件看作由数据块组成的序列,每个数据块包含 个文件记录。文件记录的大小在相关字段 定义。l把文件记录看作最小的文件操作单位,每次读写文件 的操作都是以文件记录为单位进行的

11、。l数据缓冲区:由用户程序定义,并通过特定系统调用 向操作系统声明的内存空间。数据缓冲区的空间至少 l要大于等于一个文件记录的大小。l执行读操作时,系统调用从文件中读出的文件记录自 动保存在数据缓冲区;执行写操作时,系统调用会自 动把数据缓冲区中的文件记录写入文件。l通过中“当前块号”、“当前记录号”,系 统调用可以确定当前读写操作在文件中的位置 ,读写操作完毕以后,系统调用会自动修改 中的这些参数。l使用对文件进行读写操作可以分为顺序 存取、随机存取、随机分块存取三种方式。l)使用建立文件、打开文件、关闭文 件,以及建立文件缓冲区的方法l首先应该在数据段定义,并在相关字段 填上正确的内容;同

12、时在数据段定义数据缓冲 区。l在当前目录建立一个新文件(号子功能,教材 上面):l, l, l, l, ll进行系统调用之前,必须正确初始化两个入口参数,的 段基值必须保存在,偏移量必须保存在。而且必须保 证中“文件名”、“文件扩展名”等字段已经正确初始化。l出口参数:如果(),表示新文件已经建立成功 ;如果(),表示磁盘空间不够,新文件没有 被建立。l在当前目录打开一个已经存在的文件(号子功能,教 材下面):l, l, l, l, ll入口参数:和建立文件的号子功能一致,需要提供 的段基值和偏移量。l出口参数:如果中“文件名”、“文件扩展名”指出的文件 存在,文件打开成功,();如果文件不存

13、在 ,打开失败,()。l文件打开成功后,号子功能会修改中的相应内 容,例如文件长度、当前块号、当前记录号等等。l关闭一个文件(号子功能,教材上面):l, l, l, l, ll入口参数:和前面的系统调用一致,需要提供的段基值 和偏移量。l出口参数:如果文件正确关闭,();如果文件 不能关闭(例如,关闭文件前改变了当前目录,或者改变了当 前驱动器),()。l注意:使用对文件进行操作时,只能使用当前目录,不 能使用相对目录或者绝对路径。l建立数据缓冲区(号子功能):l, l, l, l, ll入口参数:把数据缓冲区的段基值送到,首地址偏移量送 到。l出口参数:无。l一定要保证数据缓冲区的空间至少能够装入一个记录(记录的 大小由中相应字段定义,该字段由用户程序维护)。l数据缓冲区一旦建立,以后使用进行文件操作时都是使 用这个缓冲区,除非重新建立新的数据缓冲区。l)使用的顺序存取方式向文件中读写记录。l写记录(号子功能,教材下面):l, l, l, l, ll功能:按照中指定的当前块号、当前记录号,确定写操 作的位置,把数据缓冲区中首地址开始的一个记录空间写入文 件,并把修改中当前块号、当前记录号、文件长度等字 段。l入

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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