资源描述:
《磁盘文件存取技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章磁盘文件存取技术11.1有关概念11.2磁盘文件管理系统功能调用11.1扩展磁盘文件管理有关概念DOS提供的磁盘管理功能包括三个方面:一是关于文件内部所存放的数据,比如建立、读、写等二是针对文件的外部属性,如查找文件的名称、日期三是目录管理的创建、删除功能等1、ASCIIZ串ASCIIZ串—对文件进行说明。ASCIIZ串最后一个字节为0,其余字节是指示文件位置的ASCII码字符串。[d:][path]filename.ext,00用变量定义的形式就写作:filenameDB'C:SAMPLE.TXT',002、文件代号文件建立或打开后
2、,DOS在自已的保留区建立一个有关文件名、存放盘、路径及读写位置指针等信息的控制块,而返回给用户的是一个16位的二进制控制字,称为文件代号。用这个上文件代号可以方便的访问相应的文件。DOS已经预定义了文件代号0到4与标准输入输出设备对应,即0──标准输入设备,键盘;1──标准输出设备,屏幕;2──错误输出的标准设备,屏幕;3──标准辅助设备(通信端口);4──标准打印设备。这5个文件代号长期处于打开状态,应用程序可以直接使用。3、错误返回码0,操作成功CF=1,操作失败错误类型码保存在AX寄存器中(如图)4、文件属性—有一个字节表示只读隐藏系统
3、卷标子目录归档76543210位号:代码(Hex)错误原因代码(Hex)错误原因0001非法功能号0008内存不够0002文件未找到000C非法存取代码0003路径未找到000D非法数据0004同时打开的文件太多0010试图删除当前目录0005拒绝访问0011设备不一致0006非法文件代号文件操作的错误代码子功能号(AH)功能入口参数出口参数3CH创建DS:DX=文件名首字符逻辑地址CX=文件属性AX=文件代号3DH打开DS:DX=文件名首字符逻辑地址AL=存取代码AX=文件代号3EH关闭BX=文件代号3FH读DS:DX=数据缓冲区逻辑地址BX
4、=文件代号CX=读取的字节数AX=实际读取的字节数40H读DS:DX=数据缓冲区逻辑地址BX=文件代号CX=写入的字节数AX=实际写入的字节数42H移动指针(CX,DX)=移动字节数,有符号双字AL=方式码BX=文件代号(DX,AX)=新的指针位置11.2常用扩展磁盘文件管理系统功能调用(21H)【例11.1】从键盘读入一个符号串作为文件名,如果文件存在,则显示其中的内容。【解】dataSEGMENTstr1DB'InputFileName:$'str2DB13,10,'Filenotfound.',13,10,'$'fnDB80,81dup(
5、0)handleDW0bufDB10000DUP(0)dataENDScodeSEGMENTASSUMECS:code,DS:datamain:MOVAX,dataMOVDS,AXLEADX,str1MOVAH,9INT21H;先显示出提示信息InputFileName:INCAHLEADX,fnINT21H;以DOS的10号子功能读入字符串,作为文件名MOVBL,[fn+1]XORBH,BHMOV[fn+BX+2],0;置文件名字符串的结束标记LEADX,[fn+2]MOVAX,3D00HINT21H;打开文件JNCopened;打开成功转M
6、OVAH,9LEADX,str2INT21H;提示Filenotfound.JMPfinishopened:MOV[handle],AX;保存文件代号到变量handle中next:MOVBX,[handle];取文件代号MOVAH,3FHLEADX,bufMOVCX,10000INT21H;读10000个字符,若不足则按实际情况读入MOVCX,AX;实际读入字符数MOVAH,40HMOVBX,1INT21H;向1号文件(标准输出设备,屏幕)输出CMPCX,10000JEnext;读满缓冲区,而文件可能未读完,转MOVBX,[handle]MOV
7、AH,3EHINT21H;关闭文件finish:MOVAH,4CHINT21HRETcodeENDSENDmain【例11.2】给定如下条件:(1)文件student.dbf中存放着1000个学生的信息,每条信息占用40个字节的存储空间,依次存放1个字型的学号、8个字符构成的字符串作为姓名、30个字符构成的字符串作为家庭住址。(2)子程序lookup能够完成查找索引的功能。调用前以入口参数AX中存放学号,调用后若该学号存在,CF会置0,且(CX,DX)存放该学号在主文件中的地址(即文件指针),学号不存在则CF为1。(3)文件student.db
8、f已经打开,文件代号存放在变量handle中。(4)变量buf已在数据段中定义,用于存放读入的一个学生的信息。要求:编写一个子程序search,入口参