FAT12引導軟盤格式和根目錄區中的條目格式

FAT12引導軟盤格式:

名稱 偏移 長度(字節) 內容 NASM僞指令
BS_jmpBoot 0 3 一個短跳轉指令 DB EB, 4E, 90(三個數前面要加0x)
BS_OEMName 3 8 廠商名 DB "HARIBOTE"
BPB_BytsPerSec 11 2 每扇區(sector)字節數(必須是512) DW 512
BPB_SecPerClus 13 1 每簇扇區數(必須是1) DB 1
BPB_RsvdSecCnt 14 2 Boot記錄佔用多少扇區(一般是1) DW 1
BPB_NumFATs 16 1 共有多少FAT表(必須是2) DB 2
BPB_RootEntCnt 17 2 根目錄文件數(條目數)最大值(一般是224) DW 224
BPB_TotSec16 19 2 扇區總數(必須是2280) DW 2880
BPB_Media 21 1 介質描述符(必須是0xF0) DB 0xF0
BPB_FATSz16 22 2 每FAT扇區數(必須是9) DW 9
BPB_SecPerTrk 24 2 每磁道扇區數(必須是18) DW 18
BPB_NumHeads 26 2 磁頭數(面數,必須是2) DW 2
BPB_HiddSec 28 4 隱藏扇區數(必須是0) DD 0
BPB_TotSec32 32 4 如果BPB_TotSec16是0,由這個值記錄扇區數 DD 2880
BS_DrvNum 36 1 中斷13的驅動器號 DB 0
BS_Reservedl 37 1 未使用 DB 0
BS_BootSig 38 1 擴展引導標記(必須是0x29) DB 0x29
BS_VolID 39 4 卷序列號 DD 0xFFFFFFFF
BS_VolLab 43 11 卷標 DB "HARIBOTEOS "
BS_FileSysType 54 8 文件系統類型 DB "FAT12   "
填充18個0 62 18 填充18個0 RESB 18
引導代碼及其他 80 ? 引導代碼、數據  
填充0 $ 510-$ 填充0 RESB 0x1FE-$
Boot結束標誌 510 2 Boot結束標誌(魔數,必須是0xAA55) DB 0x55, 0xAA
固定寫法 512 8 固定寫法 DB 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
填充0 520 4600 填充0 RESB 4600
固定寫法 5120 8 固定寫法 DB 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
填充0 5128 1469432 填充0(直到寫滿1474560B也就是1.44MB軟盤) RESB 1469432

根目錄區中的條目格式:

名稱 偏移 長度 描述
DIR_Name 0 0xB 文件名8字節,擴展名3字節
DIR_Attr 0xB 1 文件屬性
保留位 0xC 10 保留位
DIR_WrtTime 0x16 2 最後一次寫入時間
DIR_WrtDate 0x18 2 最後一次寫入日期
DIR_FstClus 0x1A 2 此條目對應的開始簇號
DIR_FileSize 0x1C 4 文件大小

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章