目录 上一页 下一页 下一章

第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

目录 上一页 下一页 下一章