電腦電源一啟動,第一個載入的是BIOS,它是一個ROM IC (Read-Only Memory),而儲存於read-only的program稱作Firmware .

BIOS執行會先對電腦進行自我檢測POST (power-on self test),檢測ending時候,BIOS嘗試讀取軟碟第一個磁區,若讀取不到則嘗試

讀取硬碟第一個磁區,MBR則會被載入到記憶體 0000 : 7C00 位置開始執行,接著載入作業系統提供的開機磁區(Boot Sector)並

進入OS . 流程大致如下圖 : 

 

未命名  

MBR指的是硬碟最開頭第一個磁區,位於硬碟第0面、第0軌、第1磁區,每個磁區為512Bytes

BIOS提供的 INT 13h 中斷服務程式讀寫MBR磁區 :

MOV AX,0201h

MOV BX,200h

MOV CX,0001h

MOV DX,0080h

INT 13h

利用上述這段程式將MBR磁區載入到memory 200h 的位置

MBR Sector divided in three parts , 

----------------------------          <-- displacement value 00H  ( 0 bytes )

 

boot partition loader

這一小段程是用來將可啟動的

作業系統分割區載入

 

 

----------------------------       <----------------- displacement value 1BEh  ( 446 Bytes )

partition table

磁碟分割表

 

                        55AA

----------------------------       <-----------------  displacement value  200H  ( 512 Bytes ) 

 

 

1.第一個區域是程式區,稱Boot Partition Loader (Pre-Load  or  Pre-Boot),載入可啟動作業系統分割區的

   啟動磁區(boot sector),並將控制權交給啟動磁區,range :  000h ~ 1BDh 一共446 Bytes

   在不考慮軟碟情況下,除了BIOS之外會最先被電腦載入執行的區域 e.g  multi-boot manager  、  opened-type virus  、HDD software lock

   都是利用這個區域在工作 . 

 

2.第二個區域是資料區,即硬碟分割表所在區域, range  1BEh ~ 1FDh  一共 64 Bytes

   64 bytes又劃分4個區域,代表4個磁碟分割表,及範圍分別為:

   displacement value  01BE  ~  01CD    (第一分割表)

   displacement value  01CE  ~  01DD    (第二分割表)

   displacement value  01DE  ~  01ED    (第三分割表)

   displacement value  01EE  ~  01FD    (第四分割表)

   因為只有64 Bytes,只能切成4個分割表,所以這也是為何在使用FDISK時最多只能切成4個主分割(primary partition)的原因

   (擴充分割 extended 也算主分割的一種)

   萬一硬碟第0軌(MBR)發生實體損壞,這顆硬碟就報廢了,原因就是OS讀區不到partition table的關係 .

 

3.第三個區域只有 2 bytes,displacement value  1FE fix 55h

                                       displacement value  1FF fix AAh

   55AA只是讓BPL程是用來驗證是否為MBR磁區

 

 

完整MBR磁區範例 : 

 Rad part : Program sector

 Blue part : The first partition table

 Green part : The second partition table

 Pink part : The thied partition table

 Purple part : The fourth partition table

 Light Green part : Mark of MBR

0000 :  7C00   33  C0  8E  D0  BC  00  7C  FB-50  07  50  1F  FC  BE  1B  7C     3.....l.P.P.....l

0000 :  7C10   BF  1B  06  50  57  B9  E5  01-F3  A4  CB  BS  BE  07  B1  04     ...PW...........

0000 :  7C20   38  6E  00  7C  09  75  13  83-C5  10  E2  F4  CD  18  8B  F5     8n.l.u..........

0000 :  7C30   83  C6  10  49  74  19  38  2C-74  F6  A0  B5  07  B4  07  8B     ...iT.8,t.......

0000 :  7C40   F0  AC  3C  00  74  FC  BB  07-00  B4  0E  CD  10  EB  F2  88     ..<.t...........

0000 :  7C50   4E  10  E8  46  00  73  2A  FE-46  10  80  7E  04  0B  74  0B     N..F.s*.F..~..t.

0000 :  7C60   80  7E  04  0C  74  05  A0  B6-07  75  D2  80  46  02  06  83     .~..t....u..F...

0000 :  7C70   46  08  06  83  56  0A  00  E8-21  00  73  05  A0  B6  07  EB     F...V...!.s.....

0000 :  7C80   BC  81  3E  FE  7D  55  AA  74-0B  80  7E  10  00  74  C8  A0     ..>.}U.t..~..t..

0000 :  7C90   B7  07  EB  A9  8B  FC  1E  57-8B  F5  CB   BF  05  00  8A  56     ........W.......V

0000 :  7CA0   00  B4  08  CD  13  72  23  8A-C1  24  3F  98  8A  DE  8A  FC     .....r#..$?.....

0000 :  7CB0   43  F7  E3  8B  D1  86  D6  B1-06  D2  EE  42  F7  E2  39  56     C..........B..9V

0000 :  7CC0   0A  77  23  72  05  39  46  08-73  1C  B8  01  02  BB  00  7C     .w#r.9F.s......l

0000 :  7CD0   8B  4E  02  8B  56  00  CD  13-73  51  4F  74  4E  32  E4  8A     .N..V...sQOtN2..

0000 :  7CE0   56  00  CD  13  EB  E4  8A  56-00  60  BB  AA  55  B4  41  CD     V......V.`..U.A.

0000 :  7CF0   13  72  36  81  FB  55  AA   75-30  F6  C1  01  74  2B  61  60     .r6..U.u0...t+a`

0000 :  7D00   6A  00  6A  00  FF  76  0A  FF-76  08  6A  00  68  00  7C  6A     j.j..v..v.j.h.lj

0000 :  7D10   01  6A  10  B4  42  8B  F4  CD-13  61  61  73  0E  4F  74  0B     .j..B....aas.Ot.

0000 :  7D20   32  E4  8A  56  00  CD  13  EB-D6  61  F9  C3  49  6E  76  61     2..V.....a..Inva

0000 :  7D30   6C  69  64  20  70  61  72  74-69  74  69  6F  6E  20  74  61     lid partition ta

0000 :  7D40   62  6C  65  00  45  72  72  6F-72  20  6C  6F  61  64  69  6E     ble.Error loadin

0000 :  7D50   67  20  6F  70  65  72  61  74-69  6E  67  20  73  79  73  74     g operating syst

0000 :  7D60   65  6D  00  4D  69  73  73  69-6E  67  20  6F  70  65  72  61     em.Missing opera

0000 :  7D70   74  69  6E  67  20  73  79  73-74  65  6D  00  00  00  00  00     ting system.....

0000 :  7D80  00  00  00  00  00  00  00  00-00   00  00  00  00  00  00  00     ................

0000 :  7D90  00  00  00  00  00  00  00  00-00   00  00  00  00  00  00  00     ................

0000 :  7DA0  00  00  00  00  00  00  00  00-00   00  00  00  00  00  00  00     ................

0000 :  7DB0  00  00  00  00  00  2C  44  63-01  00  00  00  72  20  80  01 .....,Dc....r ..

0000 :  7DC0  01  00  0B  EF  BF  1D  3F  00-00  00  A1  0B  7D  00  00  00 ......?.....}...

0000 :  7DD0  00  00  00  00  00  00  00  00-00  00  00  00  00  00  00  00 ................

0000 :  7DE0  00  00  00  00  00  00  00  00-00  00  00  00  00  00  00  00 ................

0000 :  7DF0  00  00  00  00  00  00  00  00-00  00  00  00  00  00  55  AA ..............U.

 

硬碟分割表的格式 :

每個分表佔16 Bytes  其意義如下 :

Displacement value   |          Size        |         Explanation

          00                             byte                  Boot ID . 若為可開機的分割區則為 80h ~FFh,若否則為  00h

                                                                   80h = C,  81h = D,  82h = E     ...    以此類推

                                                                    以fdisk來說,若第一顆硬碟的分割區設為Active,則ID = 80h

                                                                    四個分割表中,只能有一個被設為可開機,否則將發生錯誤

 

          01h                           byte                  此分割開始之磁頭編號

 

          02h                           byte                   此分割開始之磁區編號  (6 bytes )

                                                                     最高的 2個 bytes ( bit 6-7 ),為磁柱編號的 bit 8-9

 

          03h                           byte                   此分割開始之磁柱編號  ( 10 bits )

                                                                     bit 8-9 放在位移值  02h的bit 6-7

 

          04h                           byte                   作業系統識別碼

                                                                      00  None

                                                                      01  DOS FAT-12 bits

                                                                      02  XENIX root

                                                                      03  XENIX usr

                                                                      04  DOS FAT-16 bits < 32M

                                                                      05  Extended

                                                                      06  DOS FAT-16 bits ? 32M

                                                                      07  HPFS/NTFS

                                                                      08  AIX

                                                                      09  AIX bootable

                                                                      0A  OS/2 Boot Manager

                                                                      0B  DOS FAT-32 bits  (Int 13h extensions)

                                                                      0C  DOS FAT Cylinder >1024  (Int 13h extensions)

                                                                      0E  DOS FAT System  (Int 13h extensions)

                                                                      0F  DOS BigExtended  (Int 13h extensions)

                                                                      20  SPF Boot manager

                                                                      40  Venix 80286

                                                                      41  PPC  PReP Boot

                                                                      51  Novell

                                                                      52  Microport

                                                                      63  GNU HURD

                                                                      64  Novell Netware

                                                                      65  Novell Netware

                                                                      75  PC/IX

                                                                      80  Old MINIX

                                                                      81  Linux/MINIX

                                                                      82  Linux swap

                                                                      83  Linux native

                                                                      85  Linux extended

                                                                      93  Amoeba

                                                                      94  Amoeba BBT

                                                                      A5  FreeBSD

                                                                      A6  Open BSD

                                                                      A7  NETSTEP

                                                                      A9  NetBSD

                                                                      B7  BSDI fs

                                                                      B8  BSDI swap

                                                                      C7  Syrinx

                                                                      DB  CP/M

                                                                      E1  DOS access

                                                                      E3  DOS R/O

                                                                      EB  BeOS  fs

                                                                      F2  DOS secondary

                                                                      FF  BBT

 

          05h                          byte                 此分割結束之磁頭編號

 

          06h                          byte                 此分割結束之磁區編號 (6bits )

                                                                 最高的2個 bits (bit 6-7),為磁柱編號的 bit 8-9

 

          07h                          byte                此分割結束之磁柱編號 ( 10 bits )

                                                                 bit 8-9 放在位移值  06h的bit 6-7

         

          08h                          DWord             此分割區前之磁區總數

 

          12h                          DWord             此分割之磁區總數

 

 

FDISK/MBR 的作用 :

 

Windoes / DOS 作業系統提供的硬碟分割成是有一個隱藏參數 /mbr,其實Fdisk /mbr 重建

硬碟分割表示錯誤的,Fdisk /mvr 主要功用在重建BPL (Boot Partition Loador),也就是

Fdiosk只幫你重建程式區而已 ,如果硬碟分割表損毀那麼Fdisk /mbr就沒用了 .

也因為 /mbr的功用在重建BPL程式區,而許多的多重開機管理程式或開機型病毒也是利用

這個區域在工作,所以,執行 Fdisk /mbr可能可以移除多重開機管理程式或開機型病毒 .

 

 

Boot Partition Loader 程式說明 (WinXP)

首先要知道BIOS結束self test後,會將MBR載入至記憶體 0000 : 7C00 location,然後開始

執行MBR程式區裡的程式。

為何會fix將MBR載入至記憶體 0000 : 7C00的位置呢? 原因是以前IBM出的x86系統

的BIOS就是這樣研發

 

MBR程式的第一部分

設定堆疊並將MBR程是從 0000 :7C00h  copy到   0000 : 0600h  位置

將程式碼由 0000 : 7C00h 複製到 0000:0600h 的原因在於後續載入的

啟動磁動(Boot Sector) . 也逼須備載入到 0000 : 7C00h 的位置

如果未進行搬移的動作,將造成在記憶中的MBR程是被覆蓋而造成當機 . 

0000:7C00 33C0          XORAX,AX
0000:7C02 8ED0          MOVSS,AX
0000:7C04 BC007C        MOVSP,7C00; 設定堆疊 SS:SP (0000:7C00)
0000:7C07 FB            STI
0000:7C08 50            PUSH AX
0000:7C09 07            POPES
0000:7C0A 50            PUSH AX
0000:7C0B 1F            POPDS; DS = ES = AX = 0
0000:7C0C FC            CLD
0000:7C0D BE1B7C        MOVSI,7C1B
0000:7C10 BF1B06        MOVDI,061B
0000:7C13 50            PUSH AX; AX = 0000
0000:7C14 57            PUSH DI; DI = 061B
0000:7C15 B9E501        MOVCX,01E5
0000:7C18 F3 A4      REPZ MOVSB; 將第二部份的程式與硬碟分割表複製到記憶體 0000:061Bh 位置
0000:7C1A CB            RETF; 跳到新位置繼續執行, 也就是 
; MBR 程式的第二部份起始點 (0000:061B)
 
;MBR 程式第二部份
0000:7C1B BDBE07        MOVBP,07BE; BP = 07BEh = 第一個硬碟分割表位址
0000:7C1E B104          MOVCL,04; CL = 4, 最多共有 4 組分割表
0000:7C20 386E00        CMP[BP+00],CH; CH = 0
0000:7C23 7C09          JL7C2E; 如果 BootID 等於 80h ~ FFh (可開機分割表)
; 則跳到 7C2E 位址繼續檢查其它的分割表
0000:7C25 7513          JNZ7C3A            ; 如果 BootID 等於 01h ~ 7Fh, 則顯示
                                     ; Invalid partition table 錯誤訊息 
0000:7C27 83C510        ADDBP,+10          ; 讀取下一分割表  
0000:7C2A E2F4          LOOP 7C20            ; 繼續檢查下一分割表
0000:7C2C CD18          INT18; 在 4 個分割表中都沒找到可啟動分割區, 執行ROM BASIC
 
0000:7C2E 8BF5          MOVSI,BP; SI=BP=可開機的分割表 
0000:7C30 83C610        ADDSI,+10; 下一分割表
0000:7C33 49            DECCX; 4 個分割表都檢查過了?
0000:7C34 7419          JZ7C4F; 是, 跳到 7C4F 繼續執行
0000:7C36 382C          CMP[SI],CH; 如果 BootID 等於 0
0000:7C38 74F6          JZ7C30; 是, 繼續檢其它分割表
; 否, 顯示 Invalid partition table 錯誤訊息 
 
0000:7C3A A0B507        MOVAL,[07B5]; [07B5]=2Ch=Point to 'Invalid partition table' error message
; -----------------------------------------------------
; 顯示錯誤訊副程式
0000:7C3D B407          MOVAH,07
0000:7C3F 8BF0          MOVSI,AX;  
0000:7C41 AC            LODSB; 讀取下個字元
0000:7C42 3C00          CMPAL,00; 字串已顯示完畢 ?
0000:7C44 74FC          JZ7C42; 是, 進入無窮迴圈
0000:7C46 BB0700        MOVBX,0007
0000:7C49 B40E          MOVAH,0E;
0000:7C4B CD10          INT10; 顯示一個字元
0000:7C4D EBF2          JMP7C41; 繼續顯示
; 顯示錯誤訊副程式結束
; -----------------------------------------------------
 
; 這埵閉q奇怪的程式碼, 不明白有什麼特殊原因要將分割表開始之磁區位移6個磁區
; 總之這段 code 在戴入 Boot Sector 時會先根據 Partition Table 的內容戴入 Boot Sector
; 如果戴入失敗 或者 戴入的磁區 不是 Boot Sector, 則將分割表開始數 + 6
; 然後再一次嘗試戴入 Boot Sector
0000:7C4F 884E10        MOV[BP+10],CL; CL=0, 將下一個 Partition Table 的 BootID 設為 00h
; 在這堻o個 byte 當成特殊旗標使用, 用來判斷 分割開始之磁區數
; 是否有作位移6個磁區的動作
 
0000:7C52 E84600        CALL 7C9B; 戴入 Boot Sector
0000:7C55 732A          JNB7C81; Boot Sector 戴入成功, 跳到 7C81
 
0000:7C57 FE4610        INCBYTE PTR [BP+10]; 將下一個 Partition Table 的 BootID+1 
0000:7C5A 807E040B      CMPBYTE PTR [BP+04],0B; 檢查作業系統格式是否為DOS FAT-32 bits
0000:7C5E 740B          JZ7C6B; 是
0000:7C60 807E040C      CMPBYTE PTR [BP+04],0C; 檢查作業系統格式是否為DOS FAT Cylinder > 1024
0000:7C64 7405          JZ7C6B; 是
0000:7C66 A0B607        MOVAL,[07B6]; [07B6]=44h=Point to "Error loading operation system" 
0000:7C69 75D2          JNZ7C3D; 顯示錯誤訊息
0000:7C6B 80460206      ADDBYTE PTR [BP+02],06; 此分割表開始磁區數位移 6 個磁區
0000:7C6F 83460806      ADDWORD PTR [BP+08],+06; 此分割區前之磁區總數 + 6
0000:7C73 83560A00      ADCWORD PTR [BP+0A],+00
0000:7C77 E82100        CALL 7C9B; 再次嘗試讀入 Boot Sector
0000:7C7A 7305          JNB7C81; Boot Sector 戴入成功
 
0000:7C7C A0B607        MOVAL,[07B6]; [07B6]=44h=Point to "Error loading operation system"
0000:7C7F EBBC          JMP7C3D; 顯示錯誤訊息
0000:7C81 813EFE7D55AA  CMPWORD PTR [7DFE],AA55; 檢查 BootSector ID 55AAh
0000:7C87 740B          JZ7C94; 確實是 Boot Sector, 轉移控制權
0000:7C89 807E1000      CMPBYTE PTR [BP+10],00; 不是 Boot Sector, 則判段是否做過開始磁區數位移的動作
0000:7C8D 74C8          JZ7C57; 沒位移, 則進行位移, 然後再嘗試讀戴入 Boot Sector
0000:7C8F A0B707        MOVAL,[07B7]; [07B7]=63h=Point to "Missing operation system" error message
0000:7C92 EBA9          JMP7C3D; 顯示錯誤訊息
0000:7C94 8BFC          MOVDI,SP; DI=SP=7C00
0000:7C96 1E            PUSH DS; DS=0000
0000:7C97 57            PUSH DI; DI=7C00
0000:7C98 8BF5          MOVSI,BP; SI=BP=Paration Table
0000:7C9A CB            RETF; 轉移控制權給 Boot Sector
; MBR 程式到止結束, 進入作業系統
; -------------------------------------------------------------
; 戴入 Boot Sector 副程式
0000:7C9B BF0500        MOVDI,0005
0000:7C9E 8A5600        MOVDL,[BP+00]; Drive number, 80h = drive 0, 81h = drive 1
0000:7CA1 B408          MOVAH,08
0000:7CA3 CD13          INT13; Get Drive parameters
; Input:
; ah=08h
;dl=00h ~ 7fh : Floppy
;dl-80h ~ FFh : Harddisk
; on return:
;ah=status of command executed
;bl=drive type
;ch=Lower 8 bits of maximum cylindernumber
;cl=bits 6-7 : Highest 2 bits of maximum cylindernumber
;   bits 0-5 : Maximum sectornumber
;dh=max heads
;dl=number of drivers attached
;es:di pointer to 11 byte Disk Base Table (DBT) 
;cf=1 if error
0000:7CA5 7223          JB7CCA; 讀取磁碟參數失敗, 跳到 7CCA 繼續執行
 
0000:7CA7 8AC1          MOVAL,CL; AL=CL=每軌磁區數
0000:7CA9 243F          ANDAL,3F
0000:7CAB 98            CBW
0000:7CAC 8ADE          MOVBL,DH; BL=DH=磁頭數
0000:7CAE 8AFC          MOVBH,AH; BH=AH=00h
0000:7CB0 43            INCBX
0000:7CB1 F7E3          MULBX; AX: DX = 磁頭數 * 每軌磁區數
0000:7CB3 8BD1          MOVDX,CX; 
0000:7CB5 86D6          XCHG DL,DH; DH=max sector, DL=max cylinder
0000:7CB7 B106          MOVCL,06
0000:7CB9 D2EE          SHRDH,CL; 
0000:7CBB 42            INCDX; DX=Total cylinder
0000:7CBC F7E2          MULDX; AX: DX = Total Sectors (磁頭數 * 每軌磁區數 * 磁軌數 )
0000:7CBE 39560A        CMP[BP+0A],DX; [BP+0A]=此分割區前之磁區總數 (high word)
0000:7CC1 7723          JA7CE6; 如果 分割區前之磁區總數 大於 Total Sectors
; 代表這可能是一顆大容量硬碟, 跳到 7CE6 位置嘗試使用 
; int13 Extended Read Function 讀取資料
 
0000:7CC3 7205          JB7CCA; jump, 非大容量硬碟
 
0000:7CC5 394608        CMP[BP+08],AX; [BP+0A]=此分割區前之磁區總數 (low word)
0000:7CC8 731C          JNB7CE6; 如果 分割區前之磁區總數 大於 Total Sectors
; 代表這可能是一顆大容量硬碟, 跳到 7CE6 位置嘗試使用 
; int13 Extended Read Function 讀取資料
 
0000:7CCA B80102        MOVAX,0201; 讀取 Boot Sector 到記憶體 0000:7C00h
0000:7CCD BB007C        MOVBX,7C00; 
0000:7CD0 8B4E02        MOVCX,[BP+02];
0000:7CD3 8B5600        MOVDX,[BP+00];
0000:7CD6 CD13          INT13;
0000:7CD8 7351          JNB7D2B; 讀取成功, 離開
0000:7CDA 4F            DECDI; 如果讀取 5 次都失敗
0000:7CDB 744E          JZ7D2B; 則離開
0000:7CDD 32E4          XORAH,AH; 重置磁碟
0000:7CDF 8A5600        MOVDL,[BP+00];
0000:7CE2 CD13          INT13;
0000:7CE4 EBE4          JMP7CCA; 繼續嘗試讀入 Boot Sector
 
0000:7CE6 8A5600        MOVDL,[BP+00]; Drive number, 80h = drive 0, 81h = drive 1...
0000:7CE9 60            PUSHA
0000:7CEA BBAA55        MOVBX,55AA; Check for Extension support:
0000:7CED B441          MOVAH,41; Input: AH = 41h
0000:7CEF CD13          INT13;        BX = 55AAh
;        DL = Drive Number
; Output: CF = 0 - operation successfully completed
;         AH - major version of extensions
;         AL - minor version of extensions
;         BX = 0AA55h
;         CX = Bits 15 to 2 - reserved (set to 0)
;              Bits 1 = 0 - Removable-media control is not supported
;                     = 1 - Removable-media control is supported
;              Bits 0 = 0 - Extended disk access is not supported
;                     = 1 - Extended disk access is supported
;         CF = 1 - operation failed
;         AH - Status of operation
 
0000:7CF1 7236          JB7D29; Int 13 not supported Extension, return
0000:7CF3 81FB55AA      CMPBX,AA55
0000:7CF7 7530          JNZ7D29; Failed, return
0000:7CF9 F6C101        TEST CL,01
0000:7CFC 742B          JZ7D29; Extended disk access is not supported, return
0000:7CFE 61            POPA
0000:7CFF 60            PUSHA
 
; Extended Read:
; Input: AH = 42h
;        DL = Drive Number
;        DS:SI = Disk-address packet
; Output: CF = 0 - operation successfully completed
;              1 - operation failed
; Format of disk address packet:
;        Offset Size    Description
;        -----------------------
;        00h    BYTE    10h (size of packet)
;        01h    BYTE    reserved (0h)
;        02h    BYTE    number of blocks to transfer
;        03h    BYTE    reserved (0h)
;        04h   DWORD    -> transfer buffer
;        08h   QWORD    starting logical block address
0000:7D00 6A00          PUSH 0000; Start logical block address= 分割表中的 此分割區前之磁區總數
0000:7D02 6A00          PUSH 0000;
0000:7D04 FF760A        PUSH [BP+0A]; 
0000:7D07 FF7608        PUSH [BP+08];
0000:7D0A 6A00          PUSH 0000; Transfer Buferr=0000:7C00h
0000:7D0C 68007C        PUSH 7C00;
0000:7D0F 6A01          PUSH 0001; Number of Blocks to transfer = 1, reserved = 0
0000:7D11 6A10          PUSH 0010; Set packet size = 10h, Reserved = 00h
0000:7D13 B442          MOVAH,42
0000:7D15 8BF4          MOVSI,SP
0000:7D17 CD13          INT13; 讀取 Boot Sector 
 
 
0000:7D19 61            POPA
0000:7D1A 61            POPA
0000:7D1B 730E          JNB7D2B; 讀取成功, 離開
0000:7D1D 4F            DECDI; 如果讀取 5 次都失敗
0000:7D1E 740B          JZ7D2B; 則離開 
0000:7D20 32E4          XORAH,AH; 重置磁碟
0000:7D22 8A5600        MOVDL,[BP+00];
0000:7D25 CD13          INT13;
0000:7D27 EBD6          JMP7CFF; 再次嘗試讀取
0000:7D29 61            POPA
0000:7D2A F9            STC
0000:7D2B C3            RET
; 戴入 Boot Sector 副程式結束
; -------------------------------------------------------------
; Boot Paration Loader 到止結束
; -------------------------------------------------------------

 


arrow
arrow
    全站熱搜

    Brian 發表在 痞客邦 留言(0) 人氣()