基本信息
文件名称:汇编语言第11章磁盘文件存取技术2课件.ppt
文件大小:133.04 KB
总页数:25 页
更新时间:2024-03-14
总字数:约4.26千字
文档摘要

第11章磁盘文件存取技术11.1磁盘记录方式11.2文件代号式磁盘存取11.3字符设备的文件代号式I/O11.4BIOS磁盘存取功能第十一章结束**11.2文件代号式磁盘存取1、概述在使用文件代号式磁盘存取处理指定文件时,必须使用一个完整的路径名,一但文件的路径名被送入操作系统,就被赋予一个简单的文件代号,这个文件代号式一个16位的数。以后对该文件进行读写操作时,就用这个文件代号去查找相应的文件。对于每个打开的文件,DOS还为其管理一个读写指针,读写指针总是指向下一次要存取的文件中的字节,这个读写指针可以移动到文件的任意位置,来满足随机存取的要求。1、路径名和ASCIZASCIZ串包括文件路径名和一个全0的字节。路径名说明文件的位置,包括磁盘驱动器、目录路径和文件名。如下PATHNM1 DB ‘C:\TEST.ASM’,00PATHNM2 DB ‘D:\UTILITY\NU.EXT’,00串中的后斜线起分割项的作用。路径的最大长度允许63个字节,对于请求ASCIZ串的中断调用,要求把ASCIZ串的地址装入DX寄存器。2、文件代号和错误返回代码存取文件要借助于文件代号,文件代号是由打开文件功能(3DH)和建立文件功能(3CH)传送到AX的一个16位数。对于标准设备不必打开就可以直接使用他们的文件代号:0=标准输入设备,通常是键盘1=标准输出设备,通常是显示器2=标准错误输出设备,总是显示器3=标准辅助设备,一般为通信端口4=标准打印设备对于建立或打开的文件,其代号从6开始顺序排列,在任一时刻最多只能同时打开5个文件。对于存取磁盘文件,首先用一个ASCIZ串指定文件并用DOS功能3CH建立或3DH打开文件。如果成功,操作置CF=0,并把文件代号传送到AX中,这时文件和代号建立了对应关系,所以要注意保存这个代号。如果操作不成功,置CF=1,AX中包含的是错误代码,这些代码都取自一个统一的错误信息表。表11.4给列出01~36的错误代码。3、文件属性文件属性说明文件特性的字节它保存在文件目录项中的0BH字节。文件属性各位的含义01-只读文件,该文件不能为写打开02-隐文件,用DIR查不到该文件03-系统文件,用DIR查不到该文件08-软盘的卷标号10-子目录。20-已写入并关闭了文件。属性字节的6和7位是保留位,应当总是0。使用检查或改变文件属性功能(43H)可以改变现有文件的属性AL=0检查文件属性;AL=1置文件属性MOV AH,43HMOV AL,01;00取文件属性;01置文件属性MOV CX,01;文件属性MOV DX,SEGFNAMEMOV DS,DXMOV DX,OFFSEG FNAMEINT 21H成功:CX=文件属性失败:AX=错误码说明:使用过程中DX中存放ASCIZ串的地址,AL=00检验文件属性,操作后当前的属性值返回到CX寄存器;AL=01改变文件属性,CX放入新属性,操作把这个新属性置入目录项。操作失败AX中返回错误代码为01、02、03或05。4、写磁盘文件(1)建立新文件写一个新文件或用同一个文件名重写一个旧文件时,首先要建立文件并赋给它一个属性,如果DOS发现要建立的文件已经存在,那么原来的文件就被破坏。建立文件的功能调用是3CH。PATHNM1 DB ‘E:\ACCOUNTS.FIL’,00HANDLE1 DW ? MOV AH,3CH MOV CX,00 ;正常属性 LEA DX,PATHNM1 INT 21H JC ERROR MOV HANDLE1,AX如果建立成功,则DOS用给定的属性建立目录项,清除进位位,并把文件代号回送给AX寄存器。以后对文件的操作都使用这个文件代号。在打开文件的同时,文件指针设置为0。如果文件已经存在,操作将文件长度置为0,新文件对老文件进行重写。如果操作把CF=1,则说明建立文件有错误,错误代码回送给AX寄存器。(2)写磁盘文件写磁盘文件是利用功能调用40H,在BX中转入文件代号,要写入的字节数放入CX中,输入缓冲区的地址放在DX中。HANDLE1 DW ?OUTREC DB 256DUP(?) MOV AH,40H MOV BX,HANDLE1 MOV CX,256 LEA DX,OUTREC INT 21H JC ERROR2 CMP AX,256 JNE ERROR3说明:如果磁盘文件写入成功,则CF=0,并把实际写入的字节送入AX。如果磁盘空间满,实际写入的字节数可能会和要求写入的字节数不同