180 likes | 433 Views
第10章 磁盘文件存取技术. 基本内容. 传统文件管理方式 扩充文件管理方式. 数据区和系统区. DOS 将磁盘分为两部分:用于存放磁盘重要信息的系统区和用于存储数据的数据区。其中系统区又分为3部分:引导记录、文件分配表( FAT) 和目录 (如下图所示)。. 系统区. 数据区. 引导记录 是一个几百字节的短程序,它完成加载 DOS 至计算机内存的初始化工作。 文件分配表 用来记录磁盘中每部分的状态。 目录 用于记录存储在磁盘上的文件,对每个文件 有一个目录项,它记录由8个字符组成的文件名、3个 字符组成的扩展名、文件属性、文件大小、存入及修
E N D
基本内容 传统文件管理方式 扩充文件管理方式
数据区和系统区 DOS将磁盘分为两部分:用于存放磁盘重要信息的系统区和用于存储数据的数据区。其中系统区又分为3部分:引导记录、文件分配表(FAT)和目录(如下图所示)。 系统区 数据区
引导记录是一个几百字节的短程序,它完成加载DOS至计算机内存的初始化工作。引导记录是一个几百字节的短程序,它完成加载DOS至计算机内存的初始化工作。 文件分配表用来记录磁盘中每部分的状态。 目录用于记录存储在磁盘上的文件,对每个文件 有一个目录项,它记录由8个字符组成的文件名、3个 字符组成的扩展名、文件属性、文件大小、存入及修 改文件的时间、文件起始簇号等。每个目录项占32字 节。 数据区中存放系统文件和用户文件。
10.1 传统文件管理方式 文件控制块和数据传输区 传统文件管理方式通过文件控制块(File Control Block,FCB)和数据传输区(Data Transfers Area)进 行文件存取。 使用FCB的存取方式有三种:顺序存取方式、随机 存取方式和随机分块存取方式。
FCB是在用户程序和操作系统之间传递磁盘文件信 息的存储区。FCB中保存文件所在的驱动器号、文件名、 扩展名、当前记录等信息,其格式如下表所示。FCB 一 般在程序的数据段定义,共37个字节,10个区域,其中 16 – 31字节由系统设置。也可使用系统的FCB,系统的FCB在程序段前缀的偏移地址5CH处。 文件控制块的域
例:利用传统文件管理方式建立一个文件FILEFST.DAT,然后将26个小写英文字母顺序写入该文件中 DATA SEGMENT ASK DB ‘Continue? Yes/No’ FLNAME DB ‘FILEFST.DAT’ FCB DB 100H DUP(0) DAT1 DB 100H DUP(0) DAT2 DB ‘abcdefghijklmnopqrstuvwxyz’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX
MOV ES,AX MOV SI,OFFSET FLNAME MOV DI,OFFSET FCB MOV AL,0FH MOV AH,29H INT 21H ;建立文件FILEFST.DAT的FCB MOV DX,OFFSET FCB MOV AH,16H INT 21H ;建立文件FILEFST.DAT AGAI: MOV BX,0 MOV CX,1AH ;输入26个字符 INPUT: MOV AL,DAT2[BX] ;从DAT2中取一个字符 MOV DAT1[BX],AL ;送DAT1区
INC BX LOOP INPUT MOV DAT1[BX],0AH MOV DX,OFFSET DAT1 MOV AH,1AH INT 21H ;建立缓冲区 MOV DX,OFFSET FCB MOV AH,15H INT 21H ;写入文件 MOV DX,OFFSET ASK MOV AH,09H INT 21H MOV AH,O1H
INT 21H CMP AL,’N’ JE EXIT JMP AGAI EXIT: MOV DX,OFFSET FCB MOV AH,10H INT 21H ;关闭文件 MOV AH,4CH INT 21H CODE ENDS END START
10.2 扩充文件管理方式 文件代号和文件属性 在使用扩充文件管理方式存取文件时,首先要告诉操 作系统一个ASCII_ZERO字符串(ASCIZ串)的地址,该字 符串包括文件的路径名和一个全0字节。其中路径名包括 驱动器名、目录路径、文件名,它指出文件的位置。文件 一旦创建成功,就被赋予一个16位数作为该文件的代号, 以后就用这个文件代号对该文件进行读写操作。
文件代号0000至0005代表标准设备,通过使用这些标准文件代号不必打开文件就可以直接使用设备。下表给出了标准文件代号的定义。 设备文件号
文件属性说明保存在文件目录项中的0BH字节 中,它用该字节的低6位说明文件的属性,具体含 义如下表。 文件属性字节各位的含义