目录 上一页 下一页 下一章

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

-d0 24[Enter]
2589:000003 43 4F 4E 46 49 47 20-20 53 59 53 00 00 80 00.CONFIG  SYS....
2589:00109B 02 00 00 38 21 4C 85-40 02 42 F4 04 61 B8 06....8!L.@.B..a..
2589:002001 00 00 00 00.....
当前记录号已改变
  列出新的FCB,我们可以看到"当前记录号"由0变成了1,操作系统自动将记录指针指向了下一个记录。如果我们继续使用"顺序读"功能,那么文件的下一个记录将被送至DTA,刚才读入的数据将被覆盖。所以如果我们想要读入文件的所有数据,就可以利用一个循环,边读入数据边处理。这样做虽可行,但它并非是一个最佳的方案,我们一般的作法是设置更大的DTA取代缺省DTA,这样我们就有可能一次读入文件中所有的数据来处理,请看程序FCB5.ASM:
FCB5.ASM

;数据段定义与程序FCB1.ASM相同,此处省略

CODE

MAIN





















SEGMENT
ASSUME
PROC
MOV
MOV
MOV
MOV
INT

MOV
MOV

MOV
MOV
INT

OR
JNZ

MOV
MOV
MOV

MOV

CS:CODE
FAR
AX,CS
DS,AX
DX,OFFSET BUFFER
AH,1AH
21H

AX,DATA
DS,AX

DX,OFFSET MY_FCB
AH,0FH
21H

AL,AL
ERR_EXIT

BX,DX
AX,[BX+10H]
WORD PTR [BX+0EH],AX

AH,14H



;设置DS寄存器指向代码段

;DX寄存器指向新的DTA
;设置一个新的DTA缓冲区


;重新设置DS寄存器指向数据段


;DX寄存器指向未打开的FCB
;打开一个文件


;打开操作正确吗?
;没有正确打开文件,转ERR_EXIT结束

;BX指向打开的FCB
;从FCB中取得文件长度
;设置记录长度等于文件长度

;从文件中读入一个记录

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章