![]() | 第7章 文件控制块 | -201- | |||||||||||||||||||
ERR_EXIT: MAIN CODE |
JNZ MOV MOV INT MOV INT ENDP ENDS END |
ERR_EXIT AH,9 DX,OFFSET MSG 21H AH,4CH 21H MAIN |
;未能找到指定的文件,转ERR_EXIT ;显示"OK!!!" ;结束进程 |
||||||||||||||||||
我们要讨论的第二个问题是个比较重要的内容,尽管这部分内容也不常用,但它是FCB文件功能与文件句柄功能的一个最显著的区别。我们知道存在于磁盘上的内容不仅是文件,还有子目录和卷标。即使是文件也有只读、隐含等很多种不同的属性。如何处理这些具有属性的文件,这就要用到扩展的FCB。我们前面讨论过有关文件属性的问题,DOS实际上是用一个字节表示文件属性,这个字节存放在扩展FCB的最后,也就是紧挨着驱动器号前面的那个字节。有关这方面的知识请大家复习一下本章的第二节。我准备通过一个实际程序来说明这个问题,请看例程LABEL.ASM: | |||||||||||||||||||||
LABEL.ASM DATA EXT_FCB DRIVE2 FILE_NAME EXT_NAME NEW_NAME MSG DATA CODE MAIN |
SEGMENT ASSUME LABEL ENDS SEGMENT ASSUME PROC MOV MOV |
DS:DATA BYTE DB 0FFH DB 5 DUP(0) DB 00001000B DB 0 DB '* ' DB '* ' DB 5 DUP(0) DB 'ABCDEFGHIJK' DB 'OK!!!',0DH,0AH,24H CS:CODE FAR AX,DATA DS,AX |
;扩展FCB标志 ;属性字节(磁盘卷标) ;驱动器号,0:当前 1:A 2:B ... ;文件名 ;扩展名 ;初始化DS寄存器 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |