![]() | 第7章 文件控制块 | -177- | |||||||||||||||||||
POSITION CUR_REC REL_REC ERRMSG DATA |
DB DB DW DB ENDS |
10 DUP(?) ? 2 DUP(?) 'Error',0DH,0AH,24H |
;保留空间,由系统填入 ;当前记录号 ;相对记录号 |
||||||||||||||||||
运行这个程序,然后用DEL命令删除新建的CONFIG.SYS,看看有何结果。利用ATTRIB命令查一下这个文件,看看它是否具有"只读"属性。 打开与建立只是对文件作进一步处理的准备工作,对文件的读写操作才称得上是真正的文件处理。下面我们就来讨论DOS提供的文件读写功能。 利用FCB完成对文件的访问时,DOS一共提供了三类文件读写功能,第一类称为"顺序读写",第二类称为"随机读写",还有一类称为"随机块读写"。这三种功能各具特色,我们现在先讨论第一种方法--顺序读写。 观察FCB的结构,可以看到这样两个数据,第一个是位于FCB偏移0CH处的一个字,这个字指示了当前要处理的记录块号;另一个是位于FCB偏移20H的一个字节,这个字节指示了当前要处理的记录号。所谓顺序读写,指得就是在调用DOS的功能之前首先设置好这两个数据,DOS依靠这两个数据完成读写操作。我们现在来看这个功能的具体用法: |
|||||||||||||||||||||
![]() |
功能号:14H 用 途:顺序读文件 参 数:DS:DX指向打开的FCB 调 用:INT 21H 返 回:AL = 0 读成功 AL = 1 未读入数据,已经到了文件末尾 AL = 2 数据传输区超界 AL = 3 读入数据不足一个记录已到文件末尾 |
||||||||||||||||||||
这个功能返回的信息较多,我们先来看看它是如何应用的。请看下例: | |||||||||||||||||||||
FCB4.ASM ; 数据段定义与程序FCB1.ASM相同,在此省略 |
|||||||||||||||||||||
CODE MAIN |
SEGMENT ASSUME PROC MOV MOV MOV MOV INT |
CS:CODE FAR AX,DATA DS,AX DX,OFFSET MY_FCB AH,0FH 21H |
;初始化DS寄存器 ;DX寄存器指向未打开的FCB ;打开一个文件 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |