引导扇区信息

  1. 偏移地址00H,长度3,内容:EB 3C 90 跳转指令。
  2. 偏移地址03H,长度8,内容:4D 53 44 4F 53 35 2E 30 为厂商标志和os 版本号,这里是MSDOS5.0。
  3. 偏移地址0BH,长度2,内容:00 02。注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,即512。表示的意思是,该磁盘每个扇区有512个字节。有的可能是1024、2048、4096。
  4. 偏移地址0DH,长度1,内容:01。表示的意思是每个簇有1个扇区。这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128。但是这个值不能使每个簇超过32KB字节。
  5. 偏移地址0EH,长度2,内容:08 00。转换一下,就是00 08,意思是保留区域中的保留扇区数为8个。那么就可以知道下面的FAT1区的开始的地址就是:0x08*0x200(每个扇区的字节数)=0x1000。
  6. 偏移地址10H,长度1,内容:02。表示此卷中的FAT结构的份数为2,另外一个是备份的。
  7. 偏移地址11H,长度2,内容:00 02。转换一下,就是0200H,表示根目录项数(Root Entries) 能够保存在该分区的根目录文件夹中的32个字节长的文件和文件夹名称项的总数。在一个典型的硬盘上,本字段的值为512。
  8. 偏移量地址13H,长度2,内容:4D ED。转换一下就是ED4DH,即大约32MB的SD卡存储量。表示小扇区数(Small Sector) 。该分区上的扇区数,表示为16位(<65536)。对大于65536个扇区的分区来说,本字段的值为0,而使用大扇区数来取代它。
  9. 偏移地址16H,长度2,内容:EC 00。转换一下为00EC,表示每个FAT占用的扇区数。那么每个扇区占用的字节数就是0x00EC*0x200=0x1D800。根据启动区、FAT1、FAT2、根目录、数据区的次序,可以依次计算出它们的地址了。(教程中给出的偏移地址为24H,但是根据实际的FAT1/FAT2地址的推算,应该是16H地址)
  10. 偏移量地址20H,长度2,内容:00 00。表示大扇区数(Large Sector) 。如果小扇区数字段的值为0,本字段就包含该FAT16分区中的总扇区数。如果小扇区数字段的值不为0,那么本字段的值为0。
  11. 偏移量地址36H,长度为8,内容:46 41 54 31 36 20 20 20,对于ASCII码为“FAT16”,表示文件系统类型(File System Type) 根据该磁盘格式,该字段的值可以为FAT、FAT12或FAT16