¦b«e¤@³¹¡A¤p¤ì°¸¤¶²Ð¤F¹êÅéµwºÐªº¬ÛÃöª¾ÃÑ¡A´£¨ì¤F¤À³Î°Ï¡B¤À³Îªí¡BÂX¥R¤À³Îªí¡BÅÞ¿èµwºÐ¡B¹êÅéµwºÐµ¥¥DÃD¡C¦b³o¤@³¹ùØ¡A¤p¤ì°¸±Nn¤¶²Ð¹êÅéµwºÐ¤À³Î¦¨ÅÞ¿èµwºÐ«á¡ADOS/Windows 9.x/Me ³o¨Ç§@·~¨t²Î¬O¦p¦ó¥h¨Ï¥Î¡B¤À°t¡BºÞ²zÅÞ¿èµwºÐ¡A¦³Ãö³oÓ¥DÃD¥»¨Ó¦³³\¦h¥i½Í¡A¨Ò¦p¥ú¥ú¬OÀɮרt²Î¡A´N¦³ DOS ªº FAT16¡BWindows 95 ªº VFAT¡BWindows 98/98SE/Me ªº FAT32¡AWindows NT/2k/XP ªº NTFS¡BOS/2 ªº HPFS ¥H¤Î Linux ªº Ext2/3 µ¥µ¥¡C¦ý¬O¤p¤ì°¸°£¤F FAT16¡BFAT32 ©M VFAT ¤ñ¸û¼ô±x¤§¥~¡A¹ï©ó¨ä¥LªºÀɮרt²Î¬O¬J¯¥Í¤SµL¸ê®Æ°Ñ¦Ò¡A¥u¯à±æµwºÐ¿³¹Ä¡C¦Ó FAT16 Àɮרt²Î¦b²Ä 18 ³¹¤w¸g´£¹L¡A¦]¦¹¥»³¹¥Dn¹ï VFAT ¥H¤Î FAT32 °µ¤@µf±´°Q¡A¨Ã¾ã²z FAT16 »P FAT32 ¤§®t²§¡C
FAT16 ©M FAT32 ¤À³Î°Ïªºµ²ºcÃþ¦ü¡C¨CÓ FAT16 ¤À³Î°Ï¨Ì§Ç¥i¤À¬°¥|³¡¥÷¡G«O¯d°Ï°ì ( reserved region )¡BFAT °Ï°ì ( FAT region )¡B®Ú¥Ø¿ý°Ï°ì ( root directory region )¥H¤Î¸ê®Æ°Ï°ì ( file and directory data region )¥|³¡¥÷¡F¹ï FAT32 ¤À³Î°Ï¦Ó¨¥¡A¨S¦³®Ú¥Ø¿ý°Ï°ì¡A¨ä¾l§¡¬Û¦P¡AFAT32 ¤À³Î°Ï§â®Ú¥Ø¿ýµø¬°¤@ӥؿý¡A¥]§t¦b¸ê®Æ°Ï°ì¤º¡C©³¤U´N¥ý±´°Q±Ò°Ê°Ï°ì¡C
FAT16 ¤À³Îªº«O¯d°Ï°ì¶È¶È§t¤@ӺϰϡA´N¬O±Ò°ÊºÏ°Ï ( boot sector )¡FFAT32 ¤À³Îªº«O¯dºÏ°Ï¤¤°£¤F²Ä¤@ӺϰϬO±Ò°ÊºÏ°Ï¥~¡AÁÙ¥]§t¤FÀɮרt²Î¸ê°TºÏ°Ï©M±Ò°ÊºÏ°Ïªº³Æ¥÷¡C
FAT16 ©M FAT32 ªº±Ò°ÊºÏ°Ï ( ±Ò°ÊºÏ°Ï¦b¹êÅéµwºÐªº¦ì¸m¡A½Ð°Ñ¾\«e¤@³¹¡A¹ïÅÞ¿èºÏºÐ¦Ó¨¥¡A±Ò°ÊºÏ°Ï¬O½s¸¹ 0 ªºÅÞ¿èºÏ°Ï ) ùس£¦³ BPB ¸ê®Æ¡ABPB ùر¦s¦³³oÓ¤À³Îùتº«n¸ê°T¡A¦Ó FAT16 ¤À³Îªº BPB ¤º®e»P FAT32 ¤À³Î¤j¦P¤p²§¡A¤ñ¸û¦p¤Uªí¡G( ¥ç¥i°Ñ¾\²Ä 18 ³¹ )
¦WºÙ | ¦ì§}½d³ò | ¤j¤p ¦ì¤¸²Õ |
©Ò¥Nªí·N¸q | ||
FAT16 | FAT32 | FAT16 | FAT32 | ||
BS_jmpBoot | 00-02 | 3 | ¸õÅD«ü¥O | ¦P¥ª | |
BS_OEMName | 03-0A | 8 | ¼t°Ó³nÅé¦W | ||
BPB_BytsPerSec | 0B-0C | 2 | ¨C¤@ºÏ°Ïªº¦ì¤¸²Õ¼Æ | ¦P¥ª | |
BPB_SecPerClu | 0D | 1 | ¨C¤@ºÏÂO©Ò¦ûºÏ°Ï¼Æ | ||
BPB_RsvdSecCnt | 0E-0F | 2 | «O¯dºÏ°Ï¼Æ | ||
BPB_NumFATs | 10 | 1 | FAT ¥÷¼Æ | ||
BPB_RootEntCnt | 11-12 | 2 | ®Ú¥Ø¿ý©Ò§t FDB ¼Æ | FAT32 ¤£¨Ï¥Î¦¹Äæ | |
BPB_TotSec16 | 13-14 | 2 | ÅÞ¿èºÏ°ÏÁ`¼Æ¡AY¬°¹sªí¥Ü¦¹µwºÐ¤j©ó 32MB¡A¦Ó¦b¦ì§} 20-23 °O¿ý¯u¥¿ªºÅÞ¿èºÏ°ÏÁ`¼Æ | ||
BPB_Media | 15 | 1 | ºÏºÐºØÃþ | ¦P¥ª | |
BPB_FATSz16 | 16-17 | 2 | ¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ | FAT32 ¤£¨Ï¥Î¦¹Äæ¦ì¬G¦¹Ä欰¹s¡A¦Ó¦b¦ì§} 24-27 ªí¥Ü¨C¥÷ FAT ºÏ°Ï¼Æ | |
BPB_SecPerTrk | 18-19 | 2 | ¨C¤@ºÏy¤§ºÏ°Ï¼Æ | ¦P¥ª | |
BPB_NumHeads | 1A-1B | 2 | ºÏÀY¼Æ | ||
BPB_HiddSec | 1C-1F | 4 | ÁôÂÃºÏ°Ï¼Æ | ||
BPB_TotSec32 | 20-23 | 4 | ÅÞ¿èºÏ°ÏÁ`¼Æ | ||
BPB_FATSz32 | FAT16 ¨S¦³³o¨ÇÄæ¦ì | 24-27 | 4 | FAT16 ¨S¦³³o¨ÇÄæ¦ì | ¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ |
BPB_ExtFlags | 28-29 | 2 | ©µ¦ùºX¼Ð | ||
BPB_FSVer | 2A-2B | 2 | Àɮרt²Îª©¥» | ||
BPB_RootClus | 2C-2F | 4 | ®Ú¥Ø¿ýªº²Ä¤@ÓºÏÂO½s¸¹ | ||
BPB_FSInfo | 30-31 | 2 | Àɮרt²Î¸ê°TºÏ°Ï | ||
BPB_BkBootSec | 32-33 | 2 | ³Æ¥÷±Ò°ÊºÏ°ÏºÏ°Ï | ||
BPB_Reserved | 34-3F | 12 | «O¯d | ||
BS_DrvNum | 24 | 40 | 1 | ºÏºÐ¾÷½s¸¹ | ¦P¥ª |
BS_Reserved1 | 25 | 41 | 1 | «O¯d | |
BS_BootSig | 26 | 42 | 1 | ¯S¼x½X | |
BS_VolID | 27-2A | 43-46 | 4 | ºÏºÐ§Ç¸¹ | |
BS_VolLab | 2B-35 | 47-51 | 11 | ºÏºÐ¼ÐÅÒ ( ºÏºÐ¨÷¦W ) | |
BS_FilSysType | 36-3D | 52-59 | 8 | ¦r¦ê¡yFAT16 ¡z | ¦r¦ê¡yFAT32 ¡z |
¡@ | 3E-1FD | 5A-1FD | ¡@ | ±Ò°Êµ{¦¡½X | ¦P¥ª |
1FE-1FF | 2 | 0AA55H¡A±Ò°ÊºÏ°Ïªºµ²§ôÃѧO½X |
¤Wªí¤¤¡A¦ì§}½d³ò¬O¥H¤Q¤»¶i¦ì¨îªí¥Ü¡A¦UÄæ¦ì¤j¤p¬O¥H¤Q¶i¦ìªí¥Ü¡A¦Ó¨ä¤¤ªºÄæ¦ì¥HÂŦ⬰©³¦âªº¬O BPB¡C±q¤Wªí¤j¬ù¥i¬Ý¥X¡AFAT16 ¤À³Î»P FAT32 ¤À³Îªº BPB ¤jP¤@¼Ë¡A¦ý¬O¦]¬° FAT32 »ÝnºÞ²z¸û¤jªºÅÞ¿èµwºÐ®e¶q¡A©Ò¥H¼W¥[¤F¤@¨ÇÄæ¦ì¡CFAT16 ªº BPB ¬O¦b±Ò°ÊºÏ°Ïªº 0BH¡ã23H¡A¦@ 25 ( §Y¤Q¤»¶i¦ìªº 19H ) Ӧ줸²Õ¡A¦b³o½d³ò¥H¥~¤]´£¨Ñ¤F¤@¨Ç¸ê°T¡A¦ý¨Ã¤£¯u¥¿ÄÝ©ó BPB¡C
¦P¼Ëªº¡AFAT32 ªº BPB ¬O¦b±Ò°ÊºÏ°Ïªº 0BH¡ã3FH¡A¦@ 53 ( §Y 35H ) Ӧ줸²Õ¡A¦b¦¹½d³ò¤§¥~¡A¤]¦³¤@¨Ç¸ê°T¡A¦ý¤]¤£¬OÄÝ©ó BPB¡C©³¤U¬O±Ò°ÊºÏ°Ïªº»¡©ú¡G
BS_jmpBoot¡G | 0H¡ã2H¡A¦@ 3 Ӧ줸²Õªº¸õÅD«ü¥O¡A¨Ïµ{¦¡¸õ¨ì±Ò°Êµ{¦¡³B°õ¦æ¡C¸õÅD«ü¥O¦³¤TºØ¡Gµuµ{¸õÅD ( ¸õÅD½d³ò¦b 128 Ӧ줸²Õ¥H¤º¡A¾÷±ñ½X¬O 0EBH )¡Bªñµ{¸õÅD ( ¸õÅD½d³ò¦b¤@ӰϬq¤º¡A§Y 64K ¤º¡A¾÷±ñ½X¬O 0E9H )¡B»·µ{¸õÅD ( °Ï¬q¤§¶¡ªº¸õÅD¡A¾÷±ñ½X¬O 0EAH )¡C¤@¯ë¦Ó¨¥¡A±Ò°ÊºÏ°Ïªº¸õÅD«ü¥O¤£¶W¹L 128 Ӧ줸²Õ¡A¬G§¡¬° 0EBH¡A¨ä«á±µ¸õÅD¥Øªº¦aÂ÷¸õÅD«ü¥Oªº¦ì§}®t¡A¦¹®tȶȤ@Ӧ줸²Õ¡A¤£¹L¦¹Äæ¦ì¦@¦³¤TӦ줸²Õ¡A¬G³Ì«á¦A±µ¤W¤@Ó¤£°µ¥ô¦ó¨Æªº CPU «ü¥O¡ANOP¡A¨ä¾÷±ñ½X¬O 90H¡C | ||||||
BS_OEMName¡G | ¦b¦ì§} 03H¡ã0AH¡A¦@ 8 Ӧ줸²Õ¡A³o¬O®æ¦¡¤Æ¦¹¤À³Î°Ïªº§@·~¨t²Î©Ò¶ñ¤Jªº¼t°Ó¦WºÙ¡C¨Ò¦p¦pªG¥Î Win 95 ®æ¦¡¤Æ¤À³Î°Ï¡A¦¹Äæ¶ñ¤J¡yMSWIN4.0¡z¦r¦ê¡F¦pªG¥Î Win 95 OSR2 ©Î¥Î Win 98 ©Î Win 98SE ®æ¦¡¤Æ¡A¦¹Äæ¶ñ¤J¡yMSWIN4.1¡z¡F¦pªG¥Î Win 2000 ®æ¦¡¤Æ¡A¦¹Äæ¶ñ¤J¡yMSDOS 5.0¡z¡C | ||||||
BPB_BytsPerSec¡G | ¦ì§} 0BH¡ã0CH ùئs©ñ¨CºÏ°Ï©Ò§t¦ì¤¸²Õ¼Æ¡A¤@¯ë¬° 512 Ӧ줸²Õ¡A¦ý¤]¥i¥H¬O 1024, 2048 ©Î 4096 ¼ÆÈ¡A¤£¹L·L³n¤£«Øij¨Ï¥Î°£¤F 512 ¥H¥~ªº¼Æ¡A¤p¤ì°¸¤]¨S¨£¹L¡A©Ò¥H§ÚÌ¥i¥H¤jÁx°²³] BPB_BytsPerSec ´Nµ¥©ó 512¡C | ||||||
BPB_SecPerClu¡G | ¦ì§} 0DH ³oӦ줸²Õªí¥Ü¨C¤@ºÏÂO©Ò¦ûºÏ°Ï¼Æ¡A¦ý¬Onª`·N¤£¯à¨Ï¨CºÏÂO©Ò§t¦ì¤¸²Õ¼Æ¤j©ó 65536¡A¥ç§Y BPB_SecPerClu ¼¥H BPB_BytsPerSec ¤£¯à¤j©ó 65536¡C¦]¦¹¡A·í BPB_BytsPerSec µ¥©ó 512 ®É¡ABPB_SecPerClu ¥i¥H¬O 1¡B2¡B4¡B8¡B16¡B32¡B64¡B128 µ¥¼ÆÈ¡C | ||||||
BPB_RsvdSecCnt¡G | ¦ì§} 0EH¡ã0FH ³oÓ¦r²Õªí¥Ü«O¯d°Ï°ìªººÏ°Ï¼Æ¡A¹ï FAT12 ©Î FAT16 ¤À³Î¦Ó¨¥¡A«O¯d°Ï°ìªººÏ°Ï¼Æ¥²¬°¤@¡A¦]¬°¨ä«O¯d°Ï°ì¥u¦³¶È¶È§t¤@ӱҰʺϰϦӤw¡C¦ý¹ï FAT32 ¤À³Î¦Ó¨¥¡A°£¤F±Ò°ÊºÏ°Ï¥~¡AÁÙ¦³Àɮרt²Î¸ê°TºÏ°Ï©M³Æ¥÷±Ò°ÊºÏ°Ï¡A¬G³q±`¤£¬O 1¡A¦Ó¬O 20H¡C | ||||||
BPB_NumFATs¡G | ¦ì§} 10H ³oӦ줸²Õªí¥Ü FAT ¥÷¼Æ¡C¤£ºÞ¬O FAT12¡BFAT16¡BFAT32 ³£¦³¨â¥÷ÀÉ®×°t¸mªí ( FAT )¡C | ||||||
BPB_RootEntCnt¡G | ¦ì§} 11H¡ã12H ¦r²Õªí¥Ü®Ú¥Ø¿ý©Ò§t FDB ¶µ¼Æ¡A§Y®Ú¥Ø¿ýùØ¥i¥H¦s©ñªºÀɮצWºÙ¤Î¤l¥Ø¿ý¦WºÙ¤§Á`©M¡AFAT12/16 ¤£¯à¶W¹L BPB_RootEntCnt¡F¦ý¬O¹ï FAt32 ¦Ó¨¥¡A¦¹Äæ¦ì¤£¥Î¡A¶ñ¤W 0¡C | ||||||
BPB_TotSec16¡G | 13H¡ã14H ³oÓ¦r²Õªí¥ÜÅÞ¿èºÏ°ÏÁ`¼Æ¡A¦ý³Ì¦h¥u¯àªí¥Ü 0FFFFH¡A©Ò¥HY¤@ӺϺЪºÅÞ¿èºÏ°Ï¤j©ó 0FFFFH ( ©Î¬O»¡ºÏºÐ®e¶q¤j©ó 32MB¡A32MB ¬O 10000H*512D ¨Óªº )¡A«h¦¹Äæ¦ì¬° 0¡AÅÞ¿èºÏ°ÏÁ`¼Æ°O¿ý¦b 20H ³B¶}©lªºÂù¦r²Õ¡C¦]¬° FAT32 ¤À³Î¥²©w¤j©ó 32MB¡A¬G¦¹Äæ¦ì¤£¨Ï¥Î¡A§¡¶ñ¤J 0¡C | ||||||
BPB_Media¡G | ¦ì§} 15H ³oӦ줸²Õªí¥ÜºÏºÐºØÃþ¡C¦¹Äæ¦ì©M FAT ªº²Ä¤@Ӧ줸²Õ¤@¼Ë¡A¨ä·N¸q¦p¤Uªí¡G
| ||||||
BPB_FATSz16¡G | ¦ì§} 16H¡ã17H ³oÓ¦r²Õªí¥Ü¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ¡F¦ý¹ï FAT32 ¦Ó¨¥¡A¦¹Äæ¦ì¤£¥Î¡A¶ñ¤W 0¡A¦Ó¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ°O¸ü©ó¦ì§} 24H¡ã27H ³BªºÂù¦r²Õ¡C | ||||||
BPB_SecPerTrk¡G | ¦ì§} 18H¡ã19H ³oÓ¦r²Õ¥Nªí¨C¤@ºÏy¤§ºÏ°Ï¼Æ¡C | ||||||
BPB_NumHeads¡G | ¦ì§} 1AH¡ã1BH ³oÓ¦r²Õ¥NªíºÏÀY¼Æ¡C | ||||||
BPB_HiddSec¡G | ¦ì§} 1CH¡ã1FH ³oÓÂù¦r²Õ ( ¦@ 4 Ӧ줸²Õ ) ªí¥ÜÁôÂúϰϼơA»P¤À³Îªí©ÎÂX¥R¤À³Îªí¤¤ªº¤À³Î°Ï¬Û¹ï¦ì¸mªº¼ÆȤ@¼Ë¡C | ||||||
BPB_TotSec32¡G | ¦ì§} 20H¡ã23H ³oÓÂù¦r²Õ¥NªíÅÞ¿èºÏ°ÏÁ`¼Æ¡C¦pªG 16H¡ã17H Ä欰 0¡A«h¦¹Ä椣¥i¬°¹s¡C |
¦b±Ò°ÊºÏ°Ï°¾²¾¦ì§} 24H¡ã3DH ªº½d³ò¡AFAT 12/16 ªºÄæ¦ì©M FAT32 ®t²§«Ü¤j¡A¦]¦¹¤À¶}»¡©ú¡A©³¤U¥ý¬Ý¬Ý FAT 12/16 ªºÄæ¦ì¡A³o¨Ç¨Ã¤£¬O¯u¥¿ªº BPB ¤º®e¡A¦´Áªº§@·~¨t²Î©Î®æ¦¡¤Æµ{¦¡¨Ã¤£¤ä´©©³¤UªºÄæ¦ì¡A©Ò¥H¨Ï¥Î®É±o¤p¤ß³o¨Ç¨î¡C
¨Æ¹ê¤W FAT32 ¤]¦³³o¨ÇÄæ¦ì¡A·N¸q¤]¬Û¦P¡C¥u¬O FAT32 ªº BPB ¸ûªø¡A¦Ó³o¨ÇÄæ¦ì ( ¥]§tºÏºÐ¾÷½s¸¹¡B«O¯d¡B¯S¼x½Xµ¥¤»ÓÄæ¦ì ) ¤£ÄÝ©ó BPB¡A©Ò¥H FAT32 ¬O©ñ¦b FAT32 ªº BPB ¤§«á¡A¤]´N¬O 40H ¤§«á¡C
BS_DrvNum¡G | ³oӦ줸²Õ¥NªíºÏºÐ¾÷½s¸¹¡AFAT12/16 ¬O¦b¦ì§} 24H¡A¦Ó FAT32 ¬O¦b¦ì§} 40H ¡CY¬°µwºÐ¡ABS_DrvNum ¬° 80H¡FY¬°³nºÐ¡ABS_DrvNum ¬° 0¡C |
BS_Reserved1¡G | ¦¹¦ì¤¸²Õ«O¯d¡A»Ý¶ñ¤J 0¡C¹ï FAT12/16 ¦Ó¨¥¡A¦b¦ì§}25H¡F¹ï FAT32 ¦Ó¨¥¦b¦ì§} 41H¡C |
BS_BootSig¡G | ¦¹¦ì¤¸²Õªí¥Ü¯S¼x½X¡A©M¨t²Î¦³Ãö¡A¦pªG¬O¥Î·L³nªº§@·~¨t²Î¡A¦¹Äæ¦ì¬O 29H¡A¦¹¥~³oÓ¯S¼x½X¤]ªí¥Ü¤U±¤TÓÄæ¦ì¦³·N¸q¡C¹ï FAT12/16 ¦Ó¨¥ BS_BootSig ¦b¦ì§} 26H¡F¹ï FAT32 ¦Ó¨¥¦b 42H¡C |
BS_VolID¡G | ºÏºÐ§Ç¸¹¡A¦@¦û¥Î 4 Ӧ줸²Õ¡A¤£ºÞ¬O FAT16 ©Î FAT32 ©Òªí¥Ü·N¸q¤@¼Ë¡A³£¬O¦b MS-DOS ¼Ò¦¡¥Î dir «ü¥O®ÉÅã¥Üªº¡yVolume Serial Number¡z¦p¤U¹Ï¡C¦ý FAT12/16 ¦s©ó¦ì§} 27H¡ã2AH¡FFAT32 «h¦s©ó 43H¡ã46H¡C ¹Ï¤@ |
BS_VolLab¡G | ºÏºÐ¼ÐÅÒ ( ºÏºÐ¨÷¦W )¡A¦@¦û¥Î 11 Ӧ줸²Õ¡A¤£ºÞ¬O FAT16 ©Î FAT32 ©Òªí¥Ü·N¸q¤@¼Ë¡A³£¬O¦b MS-DOS ¼Ò¦¡¥Î dir «ü¥O®ÉÅã¥Üªº¡yVolume¡z¡A¦p¤W¹Ï¤@¡A©Î¬OÅã¥Ü¦b§Úªº¹q¸£ùتººÏºÐ¾÷¦WºÙ¡C¦ý FAT12/16 ¦s©ó¦ì§} 2BH¡ã35H¡FFAT32 «h¦s©ó 47H¡ã51H¡C |
BS_FilSysType¡G | ¦r¦ê¡yFAT ¡z¡B¡yFAT12 ¡z¡B¡yFAT16 ¡z©Î¡yFAT32 ¡z¨ä¤¤¤§¤@¡C¦ý¬O¤@¯ë¤£¥H¦¹Äæ¦ì§PÂ_¬O¨º¤@ÓÀɮרt²Î¡A¦]¬°¦´Áªº§@·~¨t²Î®æ¦¡¤Æ®É¡ABPB ¨Ã¨S¦³³o¤@Äæ¡Aµy«á¦A»¡©ú¦p¦ó§PÂ_Àɮרt²Î¡CFAT12/16 ¦s©ó 36H¡ã3DH¡FFAT32 «h¦s©ó 52H¡ã59H¡C |
©³¤U¦ì§} 24H¡ã3FH ¬O FAT32 ªºÂX¥R BPB¡A¨äÄæ¦ì·N¸q»P FAT16 ªº·N¸q¤£¦P¡A©Ò¥H¦b¦P®É¤ä´© FAT32 ¤Î FAT16 ªº§@·~¨t²Î¡A¦p Win 95 OSR2/Win98/Me/2K/XP µ¥¡A±o¥ý§PÂ_ÅÞ¿èµwºÐÄݩ󨺤@ºØÀɮרt²Î¡A¬O FAT16 §í©Î FAT32¡C
BPB_FATSz32¡G | ¦ì§} 24H¡ã27H ¤ºªºÂù¦r²Õªí¥Ü¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ¡A¦]¬° FAT32 ®e¶q¤j¡AºÏÂO¤]¦h¡A©Ò¥H¥Î 4 Ӧ줸²Õªí¥Ü¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ¡C |
BPB_ExtFlags¡G | ¦ì§} 28H¡ã29H ¤ºªº¦r²Õªí¥Ü©µ¦ùºX¼Ð¡C |
BPB_FSVer¡G | ¦ì§} 2AH¡ã2BH ¤ºªº¦r²Õªí¥ÜÀɮרt²Îª©¥»¡A2BH ªí¥Ü¥Dnª©¥»¡A2AH ªí¥Ü¦¸nª©¥»¡C |
BPB_RootClus¡G | ¦ì§} 2CH¡ã2FH ¤ºªºÂù¦r²Õªí¥Ü®Ú¥Ø¿ýªº²Ä¤@ÓºÏÂO½s¸¹¡C |
BPB_FSInfo¡G | ¦ì§} 30H¡ã31H ùتº¦r²Õ¦s©ñµÛÀɮרt²Î¸ê°TºÏ°Ï¶ZÂ÷±Ò°ÊºÏ°Ï¦³¦h¤ÖºÏ°Ï¡A³q±`¬O 1 ӺϰϡA¤]´N¬O±Ò°ÊºÏ°Ï¤§«áºò±µµÛ®×¨t²Î¸ê°TºÏ°Ï¡C´«¨¥¤§¡A®×¨t²Î¸ê°TºÏ°Ï¬O½s¸¹ 1 ªºÅÞ¿èºÏ°Ï¡C |
BPB_BkBootSec¡G | ¦ì§} 32H¡ã33H ¤ºªº¦r²Õ¦s©ñµÛ³Æ¥÷±Ò°ÊºÏ°Ï¶ZÂ÷±Ò°ÊºÏ°Ï¦³¦h¤ÖºÏ°Ï¡A³q±`¬O 6¡A·L³n«Øij³Ì¦n¤£n¬O 6 ¥H¥~ªº¼Æ¡C´«¨¥¤§¡A±Ò°ÊºÏ°Ï¬O¥ÑÅÞ¿èºÏ°Ï 6 ¶}©l¡C |
BPB_Reserved¡G | ¦ì§} 34H¡ã3FH ¦@ 12 Ӧ줸²Õ«O¯d¤£¨Ï¥Î¡A§@¬°«áÄòÂX¥R¤§¥Î¡A§¡¶ñ¤J 0¡C |
FAT32 ªº«O¯d°Ï°ì°£¤F±Ò°ÊºÏ°Ï¥~¡AÁÙ¦³Àɮרt²Î¸ê°TºÏ°Ï¤Î³Æ¥÷±Ò°ÊºÏ°Ï¡A©³¤U¨Ó¬Ý¬Ý³o¨âӺϰϡCÀɮרt²Î¸ê°T¬O¬°¤F¯à§Ö³tpºâ³Ñ¾lºÏºÐªÅ¶¡¥Îªº¡C¦b FAT12/16 µ¥ºÏºÐ®e¶q¤£¤jªº®É¥N¡Anpºâ³Ñ¾lºÏºÐ®e¶q¤@¯ë¬OŪ¨ú FAT¡A¨ÃpºâÁÙ¦³¨º¨Ç FAT ¥i¥Î ( µù¤@ )¡A¦ý¨ì¤F FAT32 ®É¥N¡AFAT Åܱo«Ü¤j¡A©Ò¥H±o¥tÅP±¶®|¤~¦æ¡C
¦WºÙ | ¦ì§}½d³ò | ¤j¤p ¦ì¤¸²Õ |
©Ò¥Nªí·N¸q |
FSI_LeadSig | 0H¡ã3H | 4 | ¤Þ¾É°O¸¹¡A¬°¤@Âù¦r²Õ¼ÆÈ¡Aµ¥©ó 16 ¶i¦ìªº 41615252H¡Aªí¥Ü¦¹ºÏ°Ï¬°Àɮרt²Î¸ê°T¡C |
FSI_Reserved1 | 4H¡ã1E3H | 1E0H | «O¯d¤£¥Î¡A§¡¬° 0 |
FSI_StrucSig | 1E4H¡ã1E7H | 4 | ¥t¤@ÓÂù¦r²Õªº¼ÆÈ¡A61417272H¡Aªí¥Ü¤U¤@Âù¦r²Õ¬°¥i¥ÎªººÏÂO¼Æ¡C |
FSI_Free_Count | 1E8H¡ã1EBH | 4 | ªí¥Ü¦¹ÅÞ¿èºÏºÐ¤W¥i¥ÎªººÏÂO¼Æ¡A¥ç§Y¦b MS-DOS ¼Ò¦¡¤¤¥Î DIR «ü¥O®ÉÅã¥Üªº¡ybytes free¡z¡A¦p¤W¹Ï¤@¤¤¦ýÂŦâ®Ø®Ø®Ø°_¨Óªº¡A¥i¥Î¦ì¤¸²Õ¼ÆÀ³µ¥©ó BPB_BytsPerSec*BPB_SecPerClu*FSI_StrucSig¡C¦pªG FSI_Free_Count ¬° 0FFFFFFFFH¡Aªí¥Ü¨t²Î©|¥¼pºâ¥X¥i¥ÎºÏÂO¼Æ¡C |
FSI_Nxt_Free | 1ECH¡ã1EFH | 4 | ²Ä¤@Ó¥¼¨Ï¥Îªº FAT ½s¸¹¡C¦pªG FSI_Nxt_Free ¬° 0FFFFFFFFH¡Aªí¥Ü¨t²Î©|¥¼pºâ¥X²Ä¤@Ó¥¼¨Ï¥Îªº FAT ½s¸¹¡C |
FSI_Reserved2 | 1F0H¡ã1FBH | 12 | «O¯d¡A§¡¶ñ¤J 0¡C |
FSI_TrailSig | 1FCH¡ã1FFH | 4 | Àɮרt²Î¸ê°TºÏ°Ïµ²§ôªº°O¸¹¡A¬°¤@Âù¦r²Õ¡A0AA550000H¡C |
¦bÀɮרt²Î¸ê°TºÏ°Ï¤§«á¡A¦³¼ÆÓ¤£ª¾°µ¬°¦ó¥ÎªººÏ°Ï¡A¤p¤ì°¸¤âÃä¤]¨S¦³¸ê®Æ¡A©Ò¥H¤]¤£ª¾¨ä©Ò¥Nªíªº·N¸q¡C¦ý¦b²Ä 6 ÓÅÞ¿èºÏ°Ï¡A´N¬O±Ò°Ê³Æ¥÷ºÏ°Ï¡A¥¦¬O±Ò°ÊºÏ°Ï¡BÀɮרt²Î¸ê°TºÏ°Ï¥H¤Î«á± 4 Ó¤£ª¾¦ó¥ÎªººÏ°Ïªº«þ¨©¡A¤º®e¸ò³o¤»ÓºÏ°Ï¤@¼Ë¡A©Ò¥H¤]±o¦û¥Î 6 ӺϰϡC±µ¤U¨Óªº«O¯d°Ï°ì¡AÁÙ¦³¼ÆӺϰϡA¦ýÆ[¨ä¤º®e§¡¬° 0¡A¤]¨S¦³¸ê®Æ¥i¬d¡C
¦pªG±z¼g¤@Óµ{¦¡n§C¶¥ªºÅª¨úÀɮפº®e ( ¥ç§Y¤£¾a DOS ¤¤Â_ªA°È©Î Windows API )¡A¨º»ò±z±o¥ý§PÂ_¦¹ÅÞ¿è¤À³ÎÄÝ©ó¨ºÓÀɮרt²Î¡H¬O FAT12¡BFAT16 ÁÙ¬O FAT32¡H
n§PÂ_Àɮרt²Î¡A¤@¯ëªº¤èªk¡A¤]¬O·L³n«Øijªº¤èªk¬OÀˬdºÏÂOÁ`¼Æ¡A²Ä 18 ³¹´£¨ì·íºÏÂO¼Æ¤p©ó 4085 ®É¬° FAT12¡F¤j©ó©Îµ¥©ó 4085 ¥B¤p©ó 65525 ®É¬° FAT16¡F¤j©ó©Îµ¥©ó 65525 ¬° FAT32¡C¦ÓºÏÂOÁ`¼Æ«hµ¥©ó¸ê®Æ°Ï°ìªººÏ°ÏÁ`¼Æ°£¥H¨CÓºÏÂO©Ò§tºÏ°Ï¼Æ¡A¦Ó¸ê®Æ°Ï°ìªººÏ°Ï¼Æ¬OÅÞ¿è¤À³ÎÁ`ºÏ°Ï¼Æ´î¥h«O¯d°Ï°ì¡BFAT °Ï°ì¡B®Ú¥Ø¿ý°Ï°ìªººÏ°Ï¼Æ¡C¥i¼g¦¨¤U±¼Æ¾Çºâ¦¡¡G
TotSec = ÅÞ¿èºÏ°ÏÁ`¼Æ FATSz = ¨C¥÷ FAT ªººÏ°Ï¼Æ DataSec = ¸ê®Æ°Ï°ìªººÏ°ÏÁ`¼Æ = TotSec - BPB_ResvdSecCnt - ( BPB_NumFATs * FATSz ) - RootDirSectors ...... (1) ºÏÂOÁ`¼Æ = CountofClusters = DataSec / BPB_SecPerClus ...... (2)
ÅÞ¿èºÏ°ÏÁ`¼Æ ( TotSec ) ¥i¥Ñ BPB ùتº BPB_TotSec16 ©Î BPB_TotSec32 ¨ú±o¡C¨Ì¾Ú BPB ªº¸ê®Æ¡AY BPB_TotSec16 ¬°¹s¡A«hÅÞ¿èºÏ°ÏÁ`¼Æ¦s©ó BPB_TotSec32 ùØ¡A§_«h¦s©ó BPB_TotSec16 ¤º¡C
FAT °Ï°ìªººÏ°Ï¼Æ¬O¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ»P FAT ¥÷¼Æ¤§¼¿n¡A¦ý¬O«e±´¿¸g´£¨ì¡AFAT12/FAT16 »P FAT32 ¦s©ñ¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æªº¦ì¸m¤£¦P¡A¦]¦¹±o¥ý¬Ý¬Ý BPB_FATSz16 ¬O§_¬°¹s¡AY¬°¹s«h¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ¦s©ñ BPB_FATSz32 ³B¡AY¤£¬°¹s«h¨C¥÷ FAT ©Ò¦ûºÏ°Ï¼Æ¦s©ñ©ó BPB_FATSz16 ³B¡C
¨ì¦¹¡A©Ò»Ý¸ê®Æ¬Ò¤w¨ã³Æ¡A¶È³Ñ¤U®Ú¥Ø¿ý°Ï°ìªººÏ°Ï¼Æ ( RootDirSectors ) ¤F¡A¦b¾ãÓ BPB ùØ¡A©M®Ú¥Ø¿ý¦³Ãöªº¬O BPB_RootEntCnt¡A¦¹¦r²Õ°O¿ýµÛ®Ú¥Ø¿ýùتºÀÉ®×´yz°Ï¶ô ( FDB ) Á`¼Æ¡C¦Ó¨CÓ FDB ¦û¦³ 32 Ӧ줸²Õ¡A¦]¦¹®Ú¥Ø¿ý©Ò¦û¦ì¤¸²Õ¤j¤p¬° BPB_RootEntCnt*32¡A¦A°£¥H¨CºÏ°Ï©Ò¦û¦ì¤¸²Õ¼Æ ( BPB_BytsPerSec ) §Y±o®Ú¥Ø¿ý°Ï°ìªººÏ°Ï¼Æ¡G
RootDirSectors = ( BPB_RootEntCnt * 32 + BPB_BytsPerSec - 1 )/BPB_BytsPerSec ...... (3)
¹ï FAT32 ¦Ó¨¥¡ABPB_RootEntCnt ¬°¹s¡A¬G¦¡ (3) ©Ò±oµ²ªG¬°¹s¡A²Å¦X FAT32 ¨S¦³®Ú¥Ø¿ý°Ï°ì¡F¦ý¹ï FAT16 ©Î FAT12 ¦Ó¨¥¡A¦]¬° BPB_RootEntCnt ¤£¬°¹s¡A©Ò¥Hµ²ªG¤]¤£·|¬O¹s¡C¦Ü©ó¥[¤W BPB_BytsPerSec - 1 ªº¥Øªº¬O¬°¨Ï³Q°£¼Æ¤£¬°¹s¡A¦ý¥[©Î¤£¥[µL©Ò¿×¡C¨Ì¾Ú¤Wzµ²½×¡A§ÚÌ¥i¥H¼g¦¨¤U¦C²Õ¦X»y¨¥µ{¦¡¡G
.386 ;*********************************************************** data segment drv_bpb bpb <?> data ends ;*********************************************************** code segment public 'code' use16 assume cs:code,ds:data ;----------------------------------------------------------- fat_type proc near ;¥Ñ bpb_drv §PÂ_¦¹¤À³Î¬° FAT12¡BFAT16 ÁÙ¬O FAT32 ;¿é¥X¡GCL=12H ªí¥Ü FAT12 ; CL=16H ªí¥Ü FAT16 ; CL=32H ªí¥Ü FAT32 fat_type proc near sub edx,edx sub eax,eax mov ecx,edx mov ax,drv_bpb.BPB_FATSz16 or ax,ax jnz fat_ok mov eax,drv_bpb.BPB_FATSz32 fat_ok: mov cl,drv_bpb.BPB_NumFATs mul ecx mov total_FAT_sector,eax ;EAX=©Ò¦³ FAT ©Ò¦ûºÏ°Ï¼Æ mov ax,drv_bpb.BPB_RootEntCnt mov cx,drv_bpb.BPB_BytsPerSec shl eax,5 add eax,ecx sub edx,edx dec eax div ecx ;EAX=®Ú¥Ø¿ý©Ò¦ûºÏ°Ï¼Æ mov dx,drv_bpb.BPB_TotSec16 or dx,dx jnz total_sector_in_edx mov edx,drv_bpb.BPB_TotSec32 mov total_sector,edx total_sector_in_edx: ;EDX=ÅÞ¿èºÏ°ÏÁ`¼Æ sub edx,eax sub edx,total_FAT_sector mov ax,drv_bpb.BPB_RsvdSecCnt cwd ;EAX=«O¯dºÏ°Ï¼Æ sub edx,eax ;EDX=¸ê®Æ°Ï°ìªººÏ°Ï¼Æ sub eax,eax xchg eax,edx mov cl,drv_bpb.BPB_SecPerClu mov ch,0 div ecx ;EAX=ºÏÂOÁ`¼Æ mov cl,32h cmp eax,65525 jae got_it mov cl,16h cmp eax,4085 jae got_it mov cl,12h got_it: ret fat_type endp ;-----------------------------------------------------------
¸ê®Æ°Ï°ì¬O¦b«O¯d°Ï°ì¡BFAT °Ï°ì¤Î®Ú¥Ø¿ý°Ï°ì¤§«á¡A¦]¦¹¸ê®Æ°Ï°ìªº²Ä¹sÓÅÞ¿èºÏ°Ï½s¸¹ ( FirstDataSector ) ¤]´N¬O³o¨Ç°Ï°ìºÏ°Ï¼Æ¤§©M¡G
FirstDataSector = BPB_RsvdSecCnt + BPB_NumFATs*FATSz + RootDirSectors ... (4)
¦b«O¯d°Ï°ì¤§«á¡A´N¬OºÙ¬°ÀÉ®×°t¸mªí ( File Allocation Table ) ªº°Ï°ì¡C³o¶ô°Ï°ì°O¸üµÛ¨CÓÀɮצû¾Ú¤F¨º¨ÇºÏÂO ( cluster )¡AºÏÂO¬O¥Ñ¼ÆÓ³sÄòªºÅÞ¿èºÏ°Ï²Õ¦¨¡A¨ä¤j¤p¬OÀHµÛºÏºÐ®e¶q¥H¤Î DOS ª©¥»¤£¦P¦ÓÅÜ¡C¨C·í§@·~¨t²Î¼g¤J¸ê®Æ¨ìºÏºÐ¤W®É¡A¬O¥HºÏÂO¬°³æ¦ì¡A¬°ÀÉ®×°t¸m¦û¥ÎªººÏÂO¡A´«¥y¸Ü»¡¡A¨CÓÀɮ׳£¦û¦³¾ã¼ÆÓºÏÂO¡C
¨º»ò FAT «ç¼Ë°O¿ýÀɮצû¥Î¤F¨º¨ÇºÏÂO©O¡H¦b²Ä 18 ³¹¤¤´¿¹ï FAT12 ¦³¹L¸Ô²Óªº¤¶²Ð¡AFAT16 ©Î FAT32 °O¿ýÀɮצû¦³¨º¨ÇºÏÂOªºì²z»P FAT12 ¬Û¦P¡C¹ï FAT12¡BFAT16¡BFAT32 ³o´XºØÀɮרt²Î¦Ó¨¥¡A¨CÓºÏÂO³£¥H¤@Ó½s¸¹ªí¥Ü¡A³o¨Ç½s¸¹¬O¥Ñ°O¿ý¦b FAT °Ï°ìùتº¦ì¸m¨M©w¡A¦Ó¦UºØÀɮרt²ÎªººÏÂO½s¸¹©Ò¦û¦ì¤¸ªø«×¤£¦P¡A±z¥i¥H¥Ñ¥¦Ìªº¦WºÙ«Ü®e©ö´N±oª¾¡AFAT12 ªººÏÂO½s¸¹¬O 12 Ӧ줸 ( §Y 1.5 Ӧ줸²Õ )¡AFAT16 ªººÏÂO½s¸¹¬O 16 Ӧ줸 ( §Y 2 Ӧ줸²Õ )¡AFAT32 ªººÏÂO½s¸¹¬O 32 Ӧ줸 ( §Y 4 Ӧ줸²Õ )¡C
¦b²Ä 18 ³¹¤w¬Ý¹L FAT12 ªº FAT °Ï°ì¡A©³¤U¨Ó´N¨Ó¬Ý¬Ý¥t¤@Ó¤£¦Pªº¨Ò¤l¡A¤@Ó FAT32 ªº FAT °Ï°ì¡A¦¹ÅÞ¿èµwºÐ¬O¤p¤ì°¸ Windows 98 SE ªº±Ò°ÊµwºÐ¡C¤p¤ì°¸±NÂǵ۳oÓ¨Ò¤l¨Ó»¡©ú FAT32 ¤¤¡AFAT ¤ºÄæ¦ì»PÅÞ¿èºÏ°ÏªºÃö«Y¥H¤Î FAT ¦UÄæ¦ìªº·N¸q¡C
º¥ý¥ý¦b MS-DOS ¼Ò¦¡©³¤U¿é¤J DEBUG¡A( ·Ó©¹¨Ò¡A¶À¦âªº¬O¤p¤ì°¸¿é¤Jªº«ü¥O¡A[Enter] ªí¥Ü«ö¤U Enter Áä¡A¨ä¾l³£¬O¹q¸£ªº¦^À³ ) ±µµÛ¸ü¤J C: ÅÞ¿èµwºÐªº±Ò°ÊºÏ°Ï¡G
C:\WINDOWS>DEBUG [Enter] -L 100 2 0 1 [Enter]
DEBUG ªº L «ü¥O¥i¸ü¤JºÏ°Ï¡A¡y100¡zªí¥Ü¸ü¤J«áªººÏ°Ï¸ê®Æ©ñ¦b¦ì§} 100H ³B¡A¡y2¡zªí¥Ü¡yC:¡zºÏºÐ¡A¡y0¡zªí¥Ü¸ü¤J²Ä¹sºÏ°Ï ( ÅÞ¿èºÏ°Ï¬Ò¥Ñ 0 ¶}©l )¡A¡y1¡zªí¥Ü¸ü¤JºÏ°Ï¼Æ¡C¸ü¤J«án´M§ä FAT °Ï°ì¡A·Ó«e±©Ò»¡¡AFAT °Ï°ì¦b«O¯d°Ï°ì¤§«á¡A¦]¦¹ª¾¹D«O¯d°Ï°ì¦h¤j´Nª¾¹D FAT °Ï°ì¥Ñ¨ºÓºÏ°Ï¶}©l¡C¦]¦¹¥Ñ¿Ã¹õ¦L¥X BPB¡G
-D 100 13F [Enter] 136C:0100 EB 58 90 4D 53 57 49 4E-34 2E 31 00 02 08 20 00 .X.MSWIN4.1... . 136C:0110 02 00 00 00 00 F8 00 00-3F 00 FF 00 80 60 1F 00 ........?....`.. 136C:0120 7E 04 7D 00 32 1F 00 00-00 00 00 00 02 00 00 00 ~.}.2........... 136C:0130 01 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -L 300 2 20 1 [Enter]
«O¯dºÏ°Ï¤j¤p¬O¦b BPB_RsvdSecCnt ³B¡A¥ç§Y 010E °_ªº¤@Ó¦r²Õ ( ¦]¬°¦s©ñ±Ò°ÊºÏ°Ïªº¸ê®Æ°_©l©ó¦ì§} 0100H ³B¡A¬G BPB_RsvdSecCnt ¦b 010E ³B¡A§Y¤W±¤ÑÂŦâ³B )¡AµM«á¸ü¤J FAT °Ï°ìªº²Ä¤@ӺϰϡA¦p¤W¡yL 300 2 20 1¡z¡A³oùتº 20 ´N¬O«O¯dºÏ°Ï¤j¤p¡CµM«á¿é¤J¡yD 300¡zÆ[¹î FAT¡G
¹ï FAT32 ¨Ó»¡¡A¨CÓ FAT Äæ¦ì¦û¤F 32 ¦ì¤¸¡A¥ç§Y¤@ÓÂù¦r²Õ¡A¨CÓÄæ¦ì¥H¤@Ó½s¸¹ªí¥Ü¡C¦ì§} 0300¡ã0303H ªºÂù¦r²Õ¬O FAT ªº²Ä 0 ÓÄæ¦ì¡A§Y½s¸¹ 0¡F0304¡ã0307H ¬O²Ä 1 ÓÄæ¦ì¡A§Y½s¸¹ 1¡F0308¡ã030BH ¬O²Ä 2 ÓÄæ¦ì¡A§Y½s¸¹ 2¡F¡K¡K¨Ì¦¹Ãþ±À¡C²Ä¹sÓÄæ¦ìªº³Ì§C¦ì¤¸²Õ¬O 0F8H¡A»P BPB_Media ¬Û¦P¡A¨ä¾l¦ì¤¸§¡³]¬°¤@¡C²Ä¤@ÓÄæ¦ìªº¦ì¤¸§¡³]¬°¤@¡A³o¨âÓ FAT Äæ¦ì§¡¬°¨t²Î¨Ï¥Î¡C
±q²Ä 2 Ó FAT Äæ¦ì¤~¶}©l°µ¬°Àx¦s¸ê®Æ¡A©Ò¥H¸ê®Æ°Ï°ìªººÏÂO½s¸¹¤]¬O 2 ¶}©l¡A¨º»ò½s¸¹¬°¤GªººÏÂO¬O¥Ñ¨º¤@ÓÅÞ¿èºÏ°Ï¶}©l©O¡H©ÎªÌ¥i°Ý²Ä 2 Ó FAT ¥Nªí¨º¨ÇÅÞ¿èºÏ°Ï©O¡H
¥ý¬Ý¬Ý©³¤Uªº¹Ï¡A¥i¯à¤ñ¸û¦nÁA¸Ñ¡G
FirstSectorofCluster = ( N - 2 ) * BPB_SecPerClu + FirstDataSector .... (5)
¦b³oÓ¨Ò¤lùØ¡A®Ú¥Ø¿ý°Ï°ì©Ò¦ûºÏ°Ï¼Æ¬°¹s¡A«O¯d°Ï°ì©Ò¦ûºÏ°Ï¼Æ¬° 20H¡A¨â¥÷ FAT °Ï°ì¦@¦û¦³ 1F23H*2¡A§Y 3E64H¡A¦]¦¹³o¤TÓ°Ï°ì¦@¦û 3E84H¡A¬G¸ê®ÆºÏ°Ïªº²Ä¹sÓÅÞ¿èºÏ°Ï½s¸¹¬° 3E84H¡A¦Ó³s¦¹ºÏ°Ï¥H¤Î¨ä«áªººÏ°Ï¡A¦@ 8 ӺϰϬO½s¸¹ 2 ºÏÂO©Ò§t¦³ªººÏ°Ï¡F¦A±µµÛªº 8 Ӻϰϫh¬O½s¸¹ 3 ºÏÂOªººÏ°Ï¡K¡K¡C
«e±¤w¸ÑÄÀ¹L FAT ²Ä 0¡B1 Äæ¦ì¤º¤§¼ÆÈ·N¸q¡A¥¦Ì¬O¨Ñ¨t²Î¨Ï¥Î¡C¦Ó¨ä¥L FAT Äæ¦ì¤ºªº¼ÆȬO¥Nªí¤°»ò·N¸q©O¡H½Ð¬Ý¤Uªí¡G
FAT12 | FAT16 | FAT32 | ·N¡@¡@¸q |
000 | 0000 | 0000000 | ¦¹ FAT Äæ¦ì¹ïÀ³ªººÏÂO¨Ã¥¼¨Ï¥Î |
3¡ãFF6 | 3¡ãFFF6 | 3¡ãFFFFFF6 | ªí¥Ü¦¹Àɮתº¤U¤@ÓºÏÂO½s¸¹ |
FF7 | FFF7 | FFFFFF7 | ¦¹ FAT Äæ¦ì©Ò¹ïÀ³ªººÏÂO¤w·lÃa¡A¤£¥i¨Ï¥Î |
¤j©ó©Îµ¥©ó FF8 | ¤j©ó©Îµ¥©ó FFF8 | ¤j©ó©Îµ¥©ó FFFFFF8 | ¦¹ FAT Äæ¦ì©Ò¹ïÀ³ªººÏÂO¬°Àɮתº³Ì«á¤@ÓºÏÂO |
§Ú·QÁÙ¬O©µÄò¤W±ªº¨Ò¤l»¡©ú¦n¤F¡Cè´£¹L¡A¤p¤ì°¸ªº Windows 98 SE ªº±Ò°ÊµwºÐ¤¤¡A²Ä¤@Ó¸ê®ÆºÏ°Ï¬O 3E84¡A¸ü¤J¨ì°O¾ÐÅéÆ[¹î¬Ý¬Ý¡G
-L 500 2 3E84 1 [Enter] -D 500 [Enter] 136C:0500 53 55 48 44 4C 4F 47 20-44 41 54 03 00 00 00 00 SUHDLOG DAT..... 136C:0510 00 00 43 33 00 00 4C 6C-6F 30 03 00 4E 14 00 00 ..C3..Llo0..N... 136C:0520 42 4F 4F 54 4C 4F 47 20-54 58 54 22 00 00 00 00 BOOTLOG TXT".... 136C:0530 00 00 43 33 00 00 93 6D-6F 30 05 00 6E B5 00 00 ..C3...mo0..n... 136C:0540 46 52 55 4E 4C 4F 47 20-54 58 54 20 00 95 7A 6C FRUNLOG TXT ..zl 136C:0550 6F 30 43 33 00 00 92 6C-6F 30 11 00 ED 03 00 00 o0C3...lo0...... 136C:0560 57 49 4E 39 38 53 45 20-20 20 20 28 00 00 00 00 WIN98SE (.... 136C:0570 00 00 6F 30 00 00 58 6B-6F 30 00 00 00 00 00 00 ..o0..Xko0......
¬Ý°_¨Ó¦ü¥G¬O¤@¨ÇÀɮצWºÙ¤Î¬Y¨Ç¸ê®Æ¡Aªº½T¡A³o´N¬O®Ú¥Ø¿ýºÏ°Ï¡C¥Ñ BPB_RootClus ±oª¾ ( ¨£¤W± BPB ¥Õ¦â³B )¡A®Ú¥Ø¿ý¬O¦b½s¸¹ 2 ªººÏÂO³B¡A¥N¤J¦¡ (5)¡A«K¥i±o®Ú¥Ø¿ýºÏ°Ï¦û¾Ú½s¸¹ 3E48 ªºÅÞ¿èºÏ°Ï°_¡A¦@ 8 ӺϰϡC®Ú¥Ø¿ý¬O¤£¬O¥u¦û¾Ú¤F³o 8 ӺϰϩO¡H¥i¥H¥Ñ FAT °Ï°ìªº²Ä 2 ÓÄæ¦ì±oª¾¡A¸ÓÄæ¦ì¬O 0FFFFFFF ( ¨£¤W±¶À½u®Ø°_¨Ó³B )¡A´Nª¾¹D®Ú¥Ø¿ýµ²§ô©ó¦¹¡C
¦AÁ|¥t¤@¨Ò»¡©ú¡C¨£®Ú¥Ø¿ý SUHDLOG.TXT ³oÓÀɮתººÏÂO«ü¦ì¾¹«üªº¬O 3 ( ¤W±¬õ¦â¦r )¡Aªí¥Ü¦¹Àɥѽs¸¹ 3 ªººÏÂO¶}©l¦s©ñ¡A¥ç¥i¥N¤J¦¡ (5) ¨D±oÅÞ¿èºÏ°Ï¡A¦Ó FAT °Ï°ìªº²Ä 3 ÓÄæ¦ì¤ºªº¼ÆȬO 4¡Aªí¥Ü¦¹Àɤ£¥u¦û¾Ú¤@ÓºÏÂO¡AÁÙ¦û¾Ú½s¸¹ 4 ªººÏÂO¡A¦A¬Ý FAT °Ï°ìªº²Ä 4 ÓÄæ¦ì¬Oµ²§ô°O¸¹¡Aªí¥Ü¦¹ÀÉ´N¦û¦³³o¨âÓ³sÄòªººÏÂO¡C¦]¦¹±z¥i¥H§â¤@ÓÀɮשҧtªº FAT Äæ¦ìµø¬°¤@³s¦êªºÃì¡A¦¹Ã쪺¶}ºÝ¬O¦b FDB¡A¦Ó¤¤¶¡¬O¾a FAT ùتºÄæ¦ì¤º®e³s±µ¡A§ÀºÝ¬O¥H FFFFFF8 µ²§À ( ¹ï FAT32 ¦Ó¨¥ )¡C
¥Ñ¤W±ªº»¡©ú¡AÀ³·í©ú¥Õ¡A¨ú±o FAT Ä欰ùتº¤º®e¬O«Ü«nªº¡A¦]¬° FAT Äæ¦ìùتº¤º®e¬O¤U¤@ÓÀɮ׺ÏÂO©Ò¦b¡A©Î¬Oµ²§ô°O¸¹¡A¯à¨ú±o FAT Äæ¦ì¤º®e¡A¤~¯à¦s¨ú¾ãÓÀɮסC©³¤U¨Ó¬Ý¬Ý«ç»ò¼Ë¨ú±o½s¸¹¬° N ªº FAT Äæ¦ì¤º®e¡C¥Ñ¤U±ªº FAT °Ï°ì³¡¥÷¤º®e
mov eax,N ;²Ä N Ó FAT Äæ¦ì .if fat_type==12h mov ecx,eax shr ecx,1 ;ECX = EAX/2 add eax,ecx ;EAX = EAX + EAX/2¡A§Y 1.5*N .elseif fat_type==16h shl eax,1 .elseif fat_type==32h shl eax,2 .endif ;°õ¦æ§¹«á¡AEAX ¬°²Ä N Ó½s¸¹ªº FAT Äæ ;¦ì¶ZÂ÷ FAT °Ï°ì°_©l¦³¦h¤ÖӦ줸²Õ
¦Ó¨C 512 Ӧ줸²Õ²Õ¦¨¤@ºÏ°Ï¡A¦]¦¹°õ¦æ§¹¤W±µ{¦¡ªº EAX ¦A°£¥H 512¡A´N¥i¨D±o FAT °Ï°ìªº²Ä´XӺϰϡA¦Ó¾l¼Æ©Ò«üªº¦ì§}¤§¼ÆÈ´N¬O²Ä N Ó FAT Äæ¦ìªº¤º®e¡C¦¹¼ÆȪºªø«×»P FAT «¬ºA¦³Ãö¡AY¬° FAT32 «h¥²¶·¨ú±o 32 ¦ì¤¸ªø¡AY¬° FAT16 «h¥²¶·¨ú±o 16 ¦ì¤¸ªø¡AY¬° FAT12 «h¥²¶·¨ú±o 12 ¦ì¤¸ªø¡C¹ï FAT32/16 ¦Ó¨¥¡A¥un¨ú±o¹ê»Úªø«×§Y¥i¡A¦ý¬O FAT12 ªºÄæ¦ì¦³ 1.5 ¦ì¤¸²Õªø¡A¤ñ¸û³Â·Ð¡A¤@¯ë¬O¨Ì·Ó¤U±¤½¦¡pºâ¡G
movzx eax,word ptr fs:[bx] ;BX = EAX °£¥H 512 «áªº¾l¼Æ .if fat_type==12h test N,1 jz even_n shr eax,4 even_n: and ax,0fffh .elseif fat_type==16h .elseif fat_type==32h mov eax,dword ptr fs:[bx] and eax,0fffffffh .endif
°õ¦æ§¹«á¡AEAX ´N¬O²Ä N ÓºÏÂO½s¸¹¤§¤º®e¡C
¹ï FAT12/16 Àɮרt²Î¦Ó¨¥¡AFAT °Ï°ì¤§«á¬O®Ú¥Ø¿ý°Ï°ì¡A®Ú¥Ø¿ý¬O³Ì¤W¼hªº¥Ø¿ý¡A©Ò¦³ªº¤l¥Ø¿ý©ÎÀɮ׳£¬O¥H³oӥؿý¬°°ò·ÇÂI¦s©ñªº¡C®Ú¥Ø¿ýùØ°O¸üµÛ³\¦hÀɮתº¸ê®Æ¡A¨Ò¦pÀɦW¡B«Ø¥ß¤é´Á®É¶¡¡B°_©lºÏÂOµ¥µ¥¡A¨CÓÀɮ׳£¥H 32 Ӧ줸²Õ°O¿ý³o¨Ç¸ê®Æ¡AºÙ¬°ÀÉ®×´yz°Ï¶ô ( FDB )¡C
®Ú¥Ø¿ý¬O¦bºÏºÐ®æ¦¡¤Æªº®ÉÔ´N¤w«Ø¥ßªº¥Ø¿ý¡A¨ä©Ò¦û¦³ªººÏ°Ï¼ÆµLªk§ïÅÜ¡A©Ò¥H¦s©ñ¦b®Ú¥Ø¿ýùتºÀɮשΤl¥Ø¿ýÁ`¼Æ¬O¦³¨îªº¡A³oÓÁ`¼Æ¦s©ñ©ó BPB ùتº BPB_RootEntCnt Äæ¦ìùØ¡C¦]¬°³o¼Ë¡A©Ò¥H¦pªG¦b¤@ӫܤjªººÏºÐ¾÷ùØ¡A¦pªG¤£«Ø¥ß¤l¥Ø¿ýªº¸Ü¡A·í®Ú¥Ø¿ýªº FDB ¯ÓºÉ¡A§Y¨Ï¸ê®Æ°Ï°ìÁÙ¦³ªÅ¶¡¡A¤]µLªk¦s¤J¸ê®Æ¡C
¤£¹L¸g¥Ñ«Ø¥ß¤l¥Ø¿ý¥i¥H°jÁ׳oÓ¨î¡A¦¹¥~¤]¥i¥H¨ÏÀɮפÀªù§OÃþ¦s©ñ¡A¥i»¡¦n³B¦h¦h¡C¤l¥Ø¿ý»P®Ú¥Ø¿ý¬Û¦P³£¬O¥Ñ³\¦h FDB ²Õ¦¨¡A¤£¹L¦³¨âÂI¤£¦P¡G
·í·s«Ø¥ß¤@Ó¤l¥Ø¿ý®É¡A¨t²Î·|¤À°t¤@ÓºÏÂO°O¿ý³oÓ¤l¥Ø¿ýªº©Ò¦³ FDB ¸ê®Æ¡A¦Ó¥B·|¦b³oÓ¤l¥Ø¿ýªº¤W¼h¥Ø¿ý¤¤¡A¥H¤@Ó FDB °O¿ý³oÓ¤l¥Ø¿ýªº¸ê®Æ¡A¥]§t°_©lºÏÂOµ¥µ¥¡A¦Ó°_©lºÏÂO¦b FAT Äæ¦ì·|¥ý°O¿ý¦¨ µ²§ô°O¸¹¡C·í³oÓ¤l¥Ø¿ýªºÀɮ׺¥¦h¡A¥HP¨Ï±o¤@ÓºÏÂO¤£°÷¥Î®É¡A¨t²Î¥i¥H¦A¤À°t¥t¤@ºÏÂOµ¹³oÓ¤l¥Ø¿ý¡A¦P®Éקï°_©lºÏÂOªº FAT Äæ¦ì¡A¨Ï¨ä«ü¦V³Q·s¤À°t¨ìªººÏÂO¡C¨t²Î¥H¤Wz¤èªk¨Ï¤l¥Ø¿ýùتºÀɮ׼ƥu¨üºÏºÐ®e¶qªº¨î¡C
¹ï FAT32 Àɮרt²Î¦Ó¨¥¡A¨Ã¨S¦³©Ò¿×ªº®Ú¥Ø¿ý°Ï°ì¡A¦Ó¬O§â®Ú¥Ø¿ý¬Ý¦¨¬O¸ê®Æ°Ï°ìªº¤@³¡¥÷¡A®Ú¥Ø¿ý´N¹³¬O¤@Ó¤ñ¸û¯S§Oªº¤l¥Ø¿ý¤@¼Ë¡CFAT32 Àɮרt²Î«Ø¥ß®Ú¥Ø¿ý®É¶È¤À°t¤@ÓºÏÂOµ¹®Ú¥Ø¿ý¡A¦Ó³oÓºÏÂO·|¦s¤J BPB ªº BPB_RootClus Äæ¦ì¡A·í®Ú¥Ø¿ý FDB ¤£°÷®É¡A¨t²Î·|¤ñ·Ó¤l¥Ø¿ýªº¤è¦¡¦A¤À°t¤@ÓºÏÂOµ¹®Ú¥Ø¿ý¡A¦]¦¹®Ú¥Ø¿ýÀɮפ£·|¦³¨î¡C
¦b DOS 6.x ¤Î¨ä¤§«eªº DOS ª©¥»¡A¥i¯à¬°¤FºÏºÐ®e¶q©Î¨ä¥L²z¥Ñ¡AÀɮצWºÙ¦³³\¦h³W«h¡A©Î³\±z¤]¥i¥H»¡¬O¨î¡C³o¨Ç³W«h¬O¡G
¥Ñ©ó¥DÀɦW¡B°ÆÀɦW³Ì¦h¬° 8¡B3 Ó ASCII ¦r¤¸¡A¬GºÙ¬°¡y8.3 ÀɦW®æ¦¡¡z©ÎªÌºÙ¬°µuÀɦW¡C·íµM¡A³o¨Ç¨î¦¡«Ü¤£¦X²zªº¡A©Ò©¯¨ì¤F Windows 95 ¤W¥«®É¡A±À¥X¤F VFAT¡CÁöµM¦³ÂI¨à±ß¡A¦ý¬OÁ`¤ñ¨S¦³¨Ó±o¦n¡C
VFAT °£¤F¥i¨Ï¥ÎªøÀɦW ( LFN¡ALong File Name¡A³Ì¦h¥i¹F 255 ¦ì¤¸²Õ ) ¥~¡AÁÙ¦³´X¶µ«¤jªº©Ê½è¡A¤@¬OÀɦW¨Ï¥Î¸U°ê½X ( UniCode¡A½Ð°Ñ¾\ªþ¿ý¤Q ) ½s½X¦Ó¤£¦A¥Î ASCII ½X ( ³o¨Ï±oÀɦW¥i¥H¥Î¤¤¤å¡Bªü©Ô§B¤åµ¥¥@¬É¤W¤j¦hªº¤å¦r§@¬°ÀɦW )¡F¤G¬O¬Û®e©ó즳ªº FAT12/16/32 Àɮרt²Î¡A¤]´N¬O»¡¦b Windows 9x/Me ¨t²Î¤U¡Aì¨Ó¥Î DOS ®æ¦¡¤ÆªºÅÞ¿èºÏºÐ¤]¥i¥H¥Î VFAT¡Cn¹F¨ì³o¨Ç¥Øªº¡A·L³n¬O«ç»ò°µ¨ìªº©O¡H
ì¨Ó·L³nקï¤F FDB¡AÅܦ¨¨âºØ§Î¦¡¡A¤@ºØ§YµuÀɦW§Î¦¡¡A»Pì¨Óªº¬Û¦P¡F¥t¤@ºØ¬OªøÀɦW§Î¦¡¡A±Mªù¥Î¨ÓÀx¦sªøÀɦWªº¡C°²¦p¬YÓÀɮתºÀɦW²Å¦X¡y8.3 ÀɦW®æ¦¡¡z¡A¨º»ò³oÓÀÉ®×´N¥u¦³¤@ÓµuÀɦW§Î¦¡ªº FDB¡A¦Ó¨S¦³ªøÀɦW§Î¦¡ªº FDB¡F¦pªG¬YÓÀɮתºÀɦW¤£²Å¦X¡y8.3 ÀɦW®æ¦¡¡z¡A¨º»ò³oÓÀÉ®×´N¦³¤@ÓµuÀɦW§Î¦¡ªº FDB »P¤@өμÆÓªøÀɦW§Î¦¡ªº FDB ¨âºØ FDB¡AªøÀɦW§Î¦¡ªº FDB ¥uÀx¦sªøÀɦW¡A¦ÓÀɮתº«Ø¥ß¤é´Á¡Bªø«×¡B°_©lºÏÂOµ¥¤´Àx¦s©óµuÀɦW§Î¦¡ªº FDB ùØ¡A¦Ó¥BªøÀɦW§Î¦¡ªº FDB ¤§«á¡Aºò±µµÛÀÉÀɦW§Î¦¡ªº FDB¡A©³¤U¥ý¤¶²ÐªøÀɦW§Î¦¡ªº FDB¡C¨CÓªøÀɦW§Î¦¡ªº FDB ¤]¾Ö¦³ 32 Ӧ줸²Õ¡G
¦ì§} | ªø«× (¦ì¤¸²Õ) |
·N¡@¡@¸q |
0 | 1 | ªøÀɦW§Î¦¡ªº FDB ¶¶§Ç¡A¤@Ө㦳ªøÀɦWªºÀɮ׫ܥi¯à¾Ö¦³¼ÆÓªøÀɦW§Î¦¡ªº FDB¡A³o¨Ç FDB ¥ÑµuÀɦW§Î¦¡ªº FDB ¶}©l¦V§C¦ì§}±Æ¦C¡A¦Ó³oӦ줸²Õ´Nªí¥Ü¨ä¶¶§Ç¡A¥Ñ 1 ¶}©l¡A³Ì¦h¨ì 20¡A¦ý¬O¦pªG¬O³Ì«á¤@Ó FDB¡A«h¶·¥[¤W 40H¡C |
1¡ã0AH | 0AH | ªøÀɦW¡A¦¹³¡¥÷¥i¥H¦s 5 Ó¸U°ê½X¦r¤¸ |
0BH | 1 | ªøÀɦW§Î¦¡ FDB ÄÝ©Ê¡A¥²¬° 0FH¡AÀˬd¦¹¦ì¤¸²Õ¡AY¬° 0FH¡Aªí¥Ü¦¹ FDB ¬°ªøÀɦW§Î¦¡ªº FDB |
0CH | 1 | «O¯d¡A¥²¬° 00H |
0DH | 1 | ¬d®Ö½X |
0EH¡ã19H | 0CH | ªøÀɦW¡A¦¹³¡¥÷¥i¥H¦s 6 Ó¸U°ê½X¦r¤¸ |
1AH¡ã1BH | 2 | «O¯d¡A¥²¬° 00H |
1CH¡ã1FH | 4 | ªøÀɦW¡A¦¹³¡¥÷¥i¥H¦s 2 Ó¸U°ê½X¦r¤¸ |
¥Ñ¤Wªí±oª¾¡A¨CÓªøÀɦW§Î¦¡ªº FDB¡AÁöµM¦û¦³ 32 Ӧ줸²Õ¡A¦ý¬O¶¶§Ç½X¡B¬d®Ö½X¡BÄÝ©Ê¡B«O¯dµ¥¦ì¤¸²Õ¡A¹ê»Ú¤W¯à°÷Àx¦sÀɦW¥u¦³ 26 Ӧ줸²Õ¡A¦ý¬O¨CÓ¸U°ê½X»Ý¦û¥Î 2 Ӧ줸²Õ¡A¦]¦¹¹ê»Ú¤W¨CÓªøÀɦW§Î¦¡ªº FDB ¥u¯à¦s¦³ 13 Ó¦r¡C¦Ó³o 13 Ó¦r¬O¥H¸U°ê½X½s½X¦Ó¦¨¡A¨Ã¥B´²¸¨©ó FDB ªº¤TÓ³¡¥÷¡C
©³¤U¨Ó¬Ý¬Ý¤@Ó¨Ò¤l¡A³o¬O¤p¤ì°¸µwºÐ¤¤ªº¡yI learn assembly.txt ¡zÀɮסA¤p¤ì°¸¥Î DEBUG.EXE ¸ü¤J¥¦©Ò¦bªº¥Ø¿ýºÏ°Ï¡AµM«á¶É¦Lªºµ²ªG¡G
128B:0000 42 62 00 6C 00 79 00 2E-00 74 00 0F 00 D4 78 00 Bb.l.y...t....x. 128B:0010 74 00 00 00 FF FF FF FF-FF FF 00 00 FF FF FF FF t............... 128B:0020 01 49 00 20 00 6C 00 65-00 61 00 0F 00 D4 72 00 .I. .l.e.a....r. 128B:0030 6E 00 20 00 61 00 73 00-73 00 00 00 65 00 6D 00 n. .a.s.s...e.m. 128B:0040 49 4C 45 41 52 4E 7E 31-54 58 54 20 00 5C 76 30 ILEARN~1TXT .\v0 128B:0050 97 34 97 34 0F 00 7B 30-97 34 B6 49 03 00 00 00 .4.4..{0.4.I....
³Ì©³¤UÂŦ⪺³¡¥÷´N¬OµuÀɦW§Î¦¡ªº FDB¡A¥]§t¤FÀÉ®×ÄÝ©Ê¡B«Ø¥ß¤é´Áµ¥µ¥¡A¦ÓªøÀɦW«h°O¸ü©ó§C¦ì§}ªº¶À¦â»P¾í¦âªº¨âÓªøÀɦW§Î¦¡ªº FDB ùØ¡A¶À¦â³¡¥÷«h¬°ªøÀɦWªº²Ä¤@Ó FDB¡A¬G²Ä¹sӦ줸²Õ¬° 1¡A¾í¦â¬°²Ä¤GÓ¡A¤]¬O³Ì«á¤@Ó FDB¡A¬G²Ä¹sӦ줸²Õ¬° 42H¡C¦Ó§¹¾ãªºªøÀɦW«h¬O¥ÑµuÀɦW§Î¦¡ªº FDB §C¤@Ó¦ì§}ªº FDB ¶}©l¡A§â¨CÓªøÀɦW§Î¦¡ªº FDB ùتº¤T³¡¥÷ÀɦW²Õ¦X¡AY¤@Ó FDB ¤£°÷¥Î«h©¹§C¦ì§}ªº FDB ©µ¦ù¦Ó²Õ¦¨¡Aª½¨ì¹J¨ì¹s¬°¤î¡C
µù¤@¡G¹ï FAT16 ¤À³Î¦Ó¨¥¡A³Ì¦h¦³ 65536 ÓºÏÂO¡A©Ò¥H¦³ 65536 ÓºÏÂO½s¸¹¡A¨CÓºÏÂO½s¸¹¦û 16 ¦ì¤¸¡A¥ç§Y 2 Ӧ줸²Õ¡A¦]¦¹ FAT ³Ì¦h¦û¦³ 256 ӺϰϡC
¤@Ó FAT ©Ò¦û¦ì¤¸²Õ¼Æ¡G65536*2=131072 ¨CӺϰϦ³ 512 ¦ì¤¸²Õ¡A¬G¤@Ó FAT ©Ò¦ûºÏ°Ï¼Æ¡G131072/512=256
ÁÙ¤£¦Ü¼vÅT¤Ó¤j¡A¦ý¬O¹ï FAT32 ¤À³Î¦Ó¨¥¡A¤£¥u¨CÓºÏÂO½s¸¹¦û¥Î 32 ¦ì¤¸¡A¦P®ÉºÏÂO½s¸¹¼Æ¤]¼W¥[¤F¡A©Ò¥H¦pªG¥Î¤WzŪ¨ú FAT¡Apºâ¥¼¨Ï¥ÎªººÏÂO¼Æ¡A±N·|Ãm¤é¶O®É¡A©Ò¥H¥Î FSI_StrucSig ¨Ópºâ³Ñ¾l®e¶q¡C
µù¤G¡G¦b²Ä 18¡B32 ©M³o¤@³¹´£¨ì¤F³\¦hºÏ°Ï½s¸¹»P¦s¨úºÏ°ÏªºªA°Èµ{¦¡¡A§Ú·Q¥i¯à¦³³\¦h¤H·|·d²V¡A¦b¦¹µy°µ¸ÑÄÀ¡C
º¥ý±on·|¤À¿ë¹êÅéºÏºÐ»PÅÞ¿èºÏºÐ¡C¹êÅéµwºÐ´N¬O±z¦×²´©Ò¨£ªºµwºÐ¡A¨Ò¦p²{¦bªº IDE ¬É±³Ì¦h¥i¥H±µ¤W¥|ÁûµwºÐ¡A¦¹³B«K¬O«ü¹êÅéµwºÐ¡C¦ý¬O¤@ÁûµwºÐ¥i¥HÂÇ¥Ñ FDISK.EXE µ¥¤u¨ã¡A§â¥¦¤À³Î¦¨¦n´XÓ¤À³Î°Ï¡A¨CÓ¤À³Î°Ï¥iµø¬°¤@ÁûÅÞ¿èµwºÐ¡A¦]¦¹ÅÞ¿èµwºÐ¬O¨Ã«D±z¬Ý¨£ªºµwºÐ¡A¤£¹L§Ú̦b§@·~¨t²Î¤¤¨£¨ìªº C:¡BD:¡Kµ¥ºÏºÐ½s¸¹´N¬OÅÞ¿èºÏºÐ¡C¦s¨ú¹êÅéµwºÐ®É¡A¥Î INT 13H/INT 13H Extension ªA°Èµ{¦¡¡A¨ä©w§}¤è¦¡¦³ CHS ©Î LBA ÅÞ¿è©w§}¡C¦Ó¦s¨úÅÞ¿èºÏ°Ï«h¬O¥Î INT 25H/INT 26H ©Î AX=7305/INT 21H¡C¨ä¥L½Ð°Ñ¦Ò¤Uªí¡G
µwºÐ | ¹êÅéµwºÐ | ÅÞ¿èµwºÐ | |
ºÏ°Ï½s¸¹ ¦WºÙ |
CHS | LBA | ¡@ |
ºÏ°Ï½s¸¹ | ¥Ñ³Ì¥~°é¬°¹sºÏ¬W¡A¦V¤º°éª½¨ì³Ì¤jºÏ¬W¡F¨CºÏ¬W¤À¦¨Y¤zºÏÀY¡AºÏÀY¥Ñ¹s¨ì³Ì¤jºÏÀY¡F¨CºÏÀY¦A¤À¦¨Y¤zºÏ°Ï¡AºÏ°Ï¥Ñ¤@¶}©l¨ì³Ì¤jºÏ°Ï | ¥Ñ¹êÅéµwºÐªº MBR ¶}©l½s¸¹¡A¦¹ºÏ°Ï¬°¹s¤@ª½¨ì¹êÅéµwºÐªººÏ°ÏÁ`¼Æ´î¤@ | ¥ÑÅÞ¿èºÏºÐªº³Ì«e±ºÏ°Ï ( §Y±Ò°ÊºÏ°Ï ) ¶}©l¼Ð¸¹¡A¦¹ºÏ°Ï¬°¹sºÏ°Ï¤@ª½¨ì³oÓÅÞ¿èºÏºÐªººÏ°ÏÁ`¼Æ´î¤@ |
ªA°Èµ{¦¡ | INT 13H | INT 13H Extension | INT 25H/26H ©Î AX=7305H/INT 21H |
ºÏºÐ½s¸¹ | ³nºÐ¥Ñ 0 ¶}©l¡A0¡GA:¡A1¡GB:¡K µwºÐ¥Ñ 80H ¶}©l¡A80H¡G²Ä¤@Áû¹êÅéµwºÐ¡A81H¡G²Ä¤GÁû¹êÅéµwºÐ¡K¨Ì¦¹Ãþ±À |
0 ªí¥Ü A: ºÏºÐ¾÷¡A1 ªí¥Ü B: ºÏºÐ¾÷¡A2 ªí¥Ü C: ºÏºÐ¾÷¡K¨Ì¦¹Ãþ±À | |
ºÏºÐ¾÷©ñ©ó¦ó³B | DL ¼È¦s¾¹ | AL ¼È¦s¾¹ |