目录 上一页 下一页 下一章

-194- PC机汇编语言实战精解









ERR_EXIT:













MAIN
CODE

MOV
MOV
INT
OR
JNZ
MOV
INC
JMP

MOV
MOV
MOV
MOV
MOV
MOV

MOV
MOV
INT

MOV
INT
ENDP
ENDS
END
AH,22H
DX,OFFSET FCB2
21H
AL,AL
ERR_EXIT
BX,DX
WORD PTR [BX+21H]
READ_REC

BX,OFFSET FCB1
AX,WORD PTR [BX+10H]
DX,WORD PTR [BX+12H]
BX,OFFSET FCB2
WORD PTR [BX+10H],AX
WORD PTR [BX+12H],DX

AH,10H
DX,OFFSET FCB2
21H

AH,4CH
21H


MAIN
;将读入的数据写入"目标文件"


;数据正确地写入"目标文件"了吗?
;数据未能正确写入,转ERR_EXIT
;BX寄存器指向FCB2
;FCB2的"随机记录号"减1
;继续处理下一个记录

;BX寄存器指向FCB1
;取得"源文件"的长度

;BX寄存器指向FCB2
;令"目标文件"长度等于"源文件"长度


;关闭"目标文件"



;结束进程




  大家可以跟踪执行这两个功能,看看它们对FCB中的数据有哪些影响。仔细分析这个程序,就会发现使用随机存取功能可以很容易的读写文件中任意处的数据,看来如果我们将文件的结构规定的越简单,那么处理文件就会相对容易一些。
  通过上面这几个程序例,我们会发现DOS提供的"顺序"和"随机"这两种存取方式存在一个共同的缺点就是无法一次读入多个记录,这很不便于我们编制程序。当然我们前面曾经讨论过一种解决方法,就是将一个记录的长度设为整个文件的长度,这样可以一次取到整个文件的数据。这个方法虽可行但不够灵活,有时我们需不定量的读取一批数据且又要保持记录的长度不变,那么使用这个方法就有所不便。所以我下面就想介绍一下DOS提供的又一组随机存取功能--随机块存取。
  所谓块存取的意思就是说使用这一组功能可以指定一次读写的记录个数,比如一次从文件中读出16个记录,至于其它方面和随机存取功能相同,唯一要注意是就是要开辟出足够的DTA空间容纳这些数据。

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章