磁盘文件存取技术幻灯片

上传人:爱****1 文档编号:929197 上传时间:2017-05-22 格式:PPT 页数:19 大小:154.50KB
返回 下载 相关 举报
磁盘文件存取技术幻灯片_第1页
第1页 / 共19页
磁盘文件存取技术幻灯片_第2页
第2页 / 共19页
磁盘文件存取技术幻灯片_第3页
第3页 / 共19页
磁盘文件存取技术幻灯片_第4页
第4页 / 共19页
磁盘文件存取技术幻灯片_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《磁盘文件存取技术幻灯片》由会员分享,可在线阅读,更多相关《磁盘文件存取技术幻灯片(19页珍藏版)》请在金锄头文库上搜索。

1、第11章 磁盘文件存取技术,文件概述文件操作的系统功能调用,11.1 文件概述,数据文件的建立及对数据文件的读写等操作称为文件操作。同汇编语言源程序是通过编辑软件建立不同,数据文件是通过用户编写程序建立的,DOS操作系统为用户建立数据文件以及使用数据文件提供了一系列系统功能调用,用户只要掌握这些系统功能调用的正确使用就可以很方便的建立数据文件以及使用建立的数据文件,避免了在文件操作时直接对计算机硬件操作。,INT 21H提供的文件操作包括传统的文件管理和扩充的文件管理两种方法。传统的文件管理方法使用文件控制块FCB(File Control Block),它是DOS早期版本提供的文件操作,不支

2、持子目录结构,使用相对麻烦;扩充的文件管理方法使用文件代号,支持子目录结构,使用方便。 本章介绍的文件操作使用INT 21H的文件代号。,文件操作既可以通过BIOS的中断服务INT 13H,也可以使用DOS系统功能调用INT 21H 。 INT 13H提供的文件操作要求给出磁头号、磁道号、扇区号等磁盘物理参数,比较复杂; 而INT 21H提供的文件操作只要求给出文件名,相对要简单的多。,例11.1:在d:盘的masm目录下新建一个文件 myfile.txt。 则需要在数据段定义如下的文件说明。Filespec DB d:masmmyfile.txt,0,一、文件说明,文件说明要指出文件名、所在

3、路径、盘符以及一个空字符(ASCII码值为0)。具体格式如下:d: path filename.txt,0,二、文件代号和错误返回码,存取文件要借助于文件代号,文件代号是由打开文件功能(3DH)和建立文件功能(3CH)传送到AX的一个16位数。对标准设备不必打开就可直接使用它们的文件代号,DOS已经为他们预定了文件代号:,0=标准输入设备; 1=标准输出设备;2=标准错误输出设备3=标准辅助设备; 4=标准打印设备,对建立或打开的文件,其代号从6开始顺序排列,在任一时刻最多只能同时打开5个文件。当程序执行时,调用的每一个文件都必须分配一个唯一的文件代号。,三、文件属性,文件属性是一个字数据,但

4、只定义了最低6位,其它位未定义。 D0=1:表示只读文件,打开只读文件只能用于读 记录,不能改写记录。 D1=1:表示隐藏文件,使用DOS的DIR命令不能显示 隐藏文件。 D2=1:表示系统文件。使用DOS的DIR命令不能 显示隐藏文件。 D3=1:表示文件作为磁盘的卷标号,不是通常意义 上的文件。 D4=1:表示文件作为子目录,不是通常意义上的文 件。 D5=1:表示是已经归档的文件(若写入并关闭了文 件,则归档位置1)。,一般情况下,用户文件只具有一种属性,如属性代码为00H的普通文件,属性代码为01H的只读文件,属性代码为02H的隐藏文件。重要的系统文件通常有多种属性,如属性代码为07H

5、的文件,就具有只读、隐藏、系统三种属性。属性字节存放到CX寄存器中。,四、文件指针,使用DOS系统功能调用INT 21H 建立文件或者打开文件成功后,DOS系统自动提供一个文件指针来指示文件的当前位置。文件指针是一个32位二进制数,建立文件或者打开文件成功后,文件指针的初值为0,也就是指向文件的开始位置,以后每次对文件的读写操作,系统自动修改文件指针的值,使文件指针指向下一次要读写的位置,每次文件指针的移动位移量就等于读写文件的字节数。,11.2文件操作的系统功能调用,一、写磁盘文件,写一个新文件或用同一个文件名重写一个旧文件时,首先要建立文件并赋给它一个属性,如果DOS发现要建立的文件已经存

6、在,那么原来的文件就被破坏,例:建立一个有正常属性文件的指令序列,PATHNM1 DB E:ACCOUNTS.FIL,00HHANDLE1 DW ? MOV AH,3CHMOV CX,00LEA DX,PATHNM1INT 21HJC ERRORMOV HANDLE1,AX,例:把OUTREC数据区中的256个字节写入磁盘文件,HENDLE1 DW ?OUTREC DB 256 DUP(?)MOV AH,40HMOV BX,HANDLE1MOV CX,256LEA DX,OUTRECINT 21HJC ERROR2CMP AX,256JNE ERROR3,BX中装入文件代号CX中装入写入的字节

7、数DX输入缓冲区的地址,MOV AH,3EHMOV BX,HANDLE1INT 21H,当文件写入操作完成后,必须用DOS功能调用3EH来关闭文件,以确保操作系统将文件记录在磁盘上。,关闭文件:,例:用文件代号建立文件,该程序接收一个由姓名组成的文件,它包括一下几个程序:,CREATH 利用功能3CH来建立文件,并把文件代号保存在HEADLE数据项中PROCH 键盘接收输入并把输入缓冲区中其余的单元用空(blank)填入WRITH 利用功能调用40H写文件CLSEH 利用功能调用3EH来关闭文件以建立相应的目录项,TITLE HANCREAT.EXE-Creat disk file of na

8、mes model small stack 64 data,namepar label byte ;name parameter listmaxlen db 30namelen db ?namerec db 30 dup(),0dh,0ahclrf db 13,10,$errcde db 0handle dw ?pathnam db D:NAME.DAT,0prompt db name ?row db 01opnmsg db * * * open error * * *,0dh,0ah,$wrtmsg db * * * write error * * *,0dh,0ah,$codebegin

9、proc far,mov ax,datamov ds,axmov es,axmov ax,0600hcall scren;clear screencall curs;set cursorcall creath ;create filecmp errcde,0jz contin ;create errorjmp backcontin:call prochcmp namelen,0jne contincall clseh;close,back:mov ax,4c00hint 21hbegin endp;.creath proc nearmov ah,3ch ;create filemov cx,0

10、lea dx,pathnamint 21hjc a1mov handle,ax;save handlereta1:lea dx,opnmsgcall errmretcreath endp,proch proc nearmov ah,40hmov bx,01 ;displayname ?mov cx,06lea dx,promptint 21hmov ah,0ahlea dx,nameparint 21hcmp namelen,0jne b1retb1:mov al,20h ;blanksub ch,ch,一、访问方式,访问方式是指打开文件后的操作方式,访问方式作为入口参数必须存放在AL寄存器中。 AL=0,表示读文件 AL=1,表示写文件 AL=2,表示可读可写文件,二、移动方式,移动方式是指移动文件指针时如何选择参考点,移动方式作为入口参数必须存放在AL寄存器中。 AL=0,表示取文件开始位置作为文件的参 考点。 AL=1,表示取文件当前位置作为文件的参 考点。 AL=2,表示取文件尾作为文件的参考点。,三、错误代码,

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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