为方便有效地管理磁盘,DOS系统引入了簇和逻辑扇区的概念,簇是DOS 文件存取的基本单位,它是磁盘中一个或相邻的几个扇区,高密软盘(1.2M,1.44M)一簇由1个扇区组成。双面倍密度软盘(360K,720K)一簇由2个扇区组成,而硬盘常用的有:每簇4,8,16,32,64,…个扇区。逻辑扇区是磁盘中扇区的逻辑划分,其序号从0 开始直至最后一个扇区号。它们仅仅说明了磁盘的逻辑结构,对磁盘最终的访问还必须使用磁盘的物理结构,即采用给出磁道号、磁头号、扇区号的形式使用磁盘,下面给出它们之间的转换公式。
1.已知簇号到逻辑扇区号的转换
逻辑扇区号=(簇号-2)×每簇扇区数+非DOS数据区所占用的总扇区数软盘
360K:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×2+7=簇号×2+08
720K:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×3+7=簇号×2+0A
1.2M:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×7+0E=簇号×1+1B
1.44M:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×9+0E=簇号×1+1F 硬盘
254M:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×FA+20=簇号×08+205
540M:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×81+20=簇号×20+E3
1031M:逻辑扇区号=(簇号-2)×每簇扇区数+1+2×81+20=簇号×40+A3
2.非DOS数据区所占用的总扇区数的计算
非DOS数据区所占用的总扇区数=保留扇区数+FAT占用扇区数×FAT个数+根目录占用扇区数
3.根目录占用扇区数的计算
根目录占用扇区数=(根目录项数×32)/512(取整)=BPB子项5×32/512
4.磁盘总簇数的计算
磁盘总簇数=[(总逻辑扇区数BPB子项6)-非DOS数据区总扇区数]/每簇扇区数(BPB子项2)(取整)
5.磁盘最大簇号的计算
磁盘最大簇号=磁盘总簇数+1
6.磁盘DOS文件区总扇数的计算
磁盘DOS文件区总扇数=总的扇区数(BPB子项6)-非DOS数据区总扇区数(www.xing528.com)
7.FAT表目项数的计算
FAT表目项数=磁盘DOS文件总簇数 =磁盘DOS文件总扇数/每簇扇区数
8.FAT表目所占字节的确定
当FAT表目项数大于4080(FF0H)时,FAT中的一个表目占2个字节,即用2个字节表示簇号,当FAT表目项数小于等于4080(FF0H)时,FAT表的一个表目占1.5字节,即用12bit表示簇号。
9.由逻辑扇区号到对应的磁道号,磁头号及扇区号的计算
软盘(/ 表示取整,%表示取余):
磁头号=(逻辑扇区号/每道扇区数)%磁头数
磁道号=(逻辑扇区号/每道扇区数)/磁头数
扇区号=逻辑扇区号%每道扇区数+1
硬盘(/表示取整,%表示取余):
磁头号=((逻辑扇区号+隐藏扇区数)/每道扇区数)%磁头数
磁道号=((逻辑扇区号+隐藏扇区数)/每道扇区数)/磁头数
扇区号=(逻辑扇区号+隐藏扇区数)%每道扇区数+1
其中每道扇区数由BPB子项9给出,磁头数由BPB子项10给出,隐藏扇区数由BPB 子项11给出。
10.由磁道号、磁头号、扇区号到对应的逻辑扇区号的计算
逻辑扇区号=磁道号×每道扇区数×磁头数+磁头号×每道扇区数+扇区号-隐藏扇区数-1
11.由逻辑扇区号到对应的簇号的计算
簇号=(逻辑扇区号-非DOS数据区所占用的总扇区数)/每簇扇区数+2
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。