8.3驻留程序8.1磁盘文件管理程序8.2时钟程序第八章DOS高级调用程序设计●扩展文件管理有关概念●常用扩展文件管理系统功能调用●扩展文件管理程序示例8.1磁盘文件管理程序DOS提供的磁盘文件管理功能分为传统文件管理和扩展文件管理两类,本节重点讨论后者。扩展文件管理有关概念ASCⅡZ串最后一个字节为0,其余字节是指示文件位置的ASCⅡ码字符串,格式为:[d:][path]filename[.ext]文件句柄文件建立或打开后,DOS在自己的保留区建立一个有关文件名、存放盘及路径、读写位置指针等信息的控制块,而返回给用户一个16位二进制的控制字称文件句柄。错误返回码大多数扩展的功能调用出口使用进位标志位CF表示调用操作的成功或失败.CF=0表示成功;CF=1表示失败,错误类型码在AX寄存器中。文件属性用一个字节表示,其中定义了低6位,向操作系统说明一个文件的特性1只读文件1隐藏文件1系统文件1卷标1子目录1归档D7D6D5D4D3D2D1D0常用扩展文件管理系统功能调用功能:建立文件功能号:AH=3CH入口参数:DS:DX=ASCII串的首地址,CX=文件属性字出口参数:CF=0成功,AX=文件句柄;CF=1失败,AX=错误代码例:MOVAH,3CHLEADX,ASCⅡZ串首址MOVCX,文件属性INT21H如果指定目录上无同名文件,则在该目录上建立指定文件,并打开文件;如果指定目录上有同名文件,则将此文件的长度置为零。如果文件建立成功,则返回CF=0,AX=文件句柄;如果文件建立失败,则返回CF=1,AX=错误代码。功能:打开文件功能号:AH=3DH入口参数:DS:DX=ASCII串的首地址,AL=访问码(1/2/3)出口参数:CF=0成功,AX=文件句柄;CF=1失败,AX=错误代码例:MOVAH,3DHLEADX,ASCⅡZ串首址MOVAL,访问码;0表示读,1表示写,2表示读写INT21H如果文件成功打开,则返回CF=0,AX=文件句柄,且文件的读写指针指向文件第一个字节;如果失败,则返回CF=1,AX=错误代码。功能:关闭文件功能号:AH=3EH入口参数:BX=文件句柄出口参数:CF=0成功;CF=1失败,AX=错误代码例:MOVAH,3EHMOVBX,文件句柄INT21H如果文件成功关闭,则返回CF=0;如果失败,则返回CF=1,AX=错误代码6。功能:读文件功能号:AH=3FH入口参数:DS:DX=缓冲区首址,BX=文件句柄,CX=要读字节数出口参数:CF=0成功,AX=读出字节数;CF=1失败,AX=错误代码例:MOVAH,3FHMOVBX,文件句柄MOVCX,要读出的字节数LEADX,数据缓冲区首址INT21H从BX指定的文件读入CX规定的一个或多个字节数据,存入DS:DX指示的缓冲区。如果读文件成功,返回CF=0,AX=实际读入字节数;如果失败,则返回CF=1,AX=错误代码(5/6)。功能:写文件功能号:AH=40H入口参数:DS:DX=缓冲区首址,BX=文件句柄,CX=要写字节数出口参数:CF=0成功,AX=写入字节数;CF=1失败,AX=错误代码例:MOVAH,40HMOVBX,文件句柄MOVCX,要写入的字节数LEADX,数据缓冲区首址INT21H从DS:DX指示的缓冲区写CX规定的一个或多个字节数据到BX指定的文件。如果写文件成功,则返回CF=0,AX=实际写入的字节数;如果失败,则返回CF=1,AX=错误代码(5/6)。功能:删除文件功能号:AH=41H入口参数:DS:DX=ASCII串首址出口参数:CF=0成功,AX=写入;CF=1失败,AX=错误代码例:MOVAH,41HLEADX,文件的ASCⅡZ串首址INT21H如果文件删除成功,则返回CF=0,AX=0;如果失败,则返回CF=1,AX=错误代码。功能:移动文件读写指针功能号:AH=42H入口参数:CX:DX=移位量,BX=文件句柄,AL=移动方式(0绝对移动,1相对移动,2文件尾移动)出口参数:CF=0成功,DX:AX=新指针;CF=1失败,AX=错误码例:MOVAH,42HMOVBX,文件句柄MOVAL,移动方式MOVCX,要移动字节偏移的高位MOVDX,要移动字节偏移的低位INT21H将BX指定的文件的读写指针移动到由AL和CX:DX确定的新位置。如果移动文件读写指针成功,则返回CF=0,DX:AX=文件读写指针新位置;如果失败,则返回CF=1,AX=错误代码(1/6)。功能:搜索第一个匹配文件功能号:AH=4EH入口参数:DS:DX=ASCII串首址,CX=文件属性出口参数:CF=0成功;CF=1失败,AX=错误代码例:MOVAH,4EHLEADX,文件的ASCⅡZ串首址MOVCX,搜索的文件属性INT21H如果搜索成功,则返回CF=0;如果失败,则返回CF=1,AX=错误代码(2/18)。例8.1打开D:\MASM6下已存在的SORT.ASM文件准备进行读操作。FILENAMEDBˊ...