-198- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
度。在前面我们曾经用直接修改FCB中文件长度数值的方法改变文件长度,这种方法不太好,现在我们将使用随机块写功能调整文件长度: | |||||||||||||||||||||
g=4b 68[Enter] | |||||||||||||||||||||
AX=2800 | BX=0025 | CX=0006 | DX=0025 | SP=0000 | BP=0000 | SI=0000 | DI=0000 | ||||||||||||||
DS=15F1 | ES=15E1 | SS=15F1 | CS=15F6 | IP=0068 | NV UP EI PL ZR NA PE NC | ||||||||||||||||
15F6:0068 | B410 | MOV AH,10 | |||||||||||||||||||
调整的方法也不难,首先设置目标文件的随机记录号等于源文件的长度,并且将目标文件的记录长度设为1字节,然后我们向目标文件中写入0个记录,这样就可以修改目标文件的长度。 | |||||||||||||||||||||
-d25 4a[Enter] | |||||||||||||||||||||
15F1:0020 | 03 43 4F-4E 46 49 47 20 20 54 58 | .CONFIG TX | |||||||||||||||||||
15F1:0030 | 54 05 00 01 00 9B 02 00-00 54 21 9D 4B 40 02 02 | T........T!.K@.. | |||||||||||||||||||
15F1:0040 | 59 07 60 B8 0F 1B 9B 02-00 00 00 | Y.`........ | |||||||||||||||||||
调整后文件长度为29BH,恰好等于源文件长度。注意一下FCB中还有哪些数据发生了变化。 执行完所有的程序,返回DOS,看一看当前目录下是否有CONFIG.TXT文件,并检查其内容。 通过这几个程序例我想大家对FCB的随机存取功能已经有了相当的了解。下一节我们将结束对FCB的讨论。 |
|||||||||||||||||||||
7.4 FCB完结篇 | |||||||||||||||||||||
这一节我们要讨论有关FCB的一些较为特殊的应用,主要是三个方面的内容:一是应用FCB删除文件和给文件改名;其二是利用扩展FCB访问具有特殊属性的文件。第三是有关"命令行参数"的问题。我们先来讨论第一个问题--删除与改名。 | |||||||||||||||||||||
![]() |
功能号: 用 途: 参 数: 调 用: 返 回: |
13H 删除文件 DS:DX--指向未打开的FCB INT 21H AL = 0--文件正确删除 AL = 0FFH--文件未能删除 |
功能号: 用 途: 参 数: 调 用: 返 回: |
17H 文件改名 DS:DX--指向特殊的FCB INT 21H AL = 0--文件正确改名 AL = 0FFH--文件未能改名 |
|||||||||||||||||
这两个功能在应用时应注意这样几点:首先要注意它们所使用的FCB的性质,13H功能要求使用一个未打开的FCB,17H功能使用一个特殊的FCB。下面我们就来看看特殊的FCB是一种什么结构,请看图7-4: | |||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |