2010-01-02 26 views
1

我已經給了一個項目結束項目來編寫彙編代碼來讀取MBR並將其保存到軟盤。我想我設法在虛擬機器中用DOS中的INT 13h讀取它。該機器只有一個硬盤和一個安裝XP的分區。 當我讀取MBR並打印它時,它給了我很多垃圾,並且在垃圾中說:無效的分區表。加載操作系統時出錯......就像在這個網站上一樣:http://mbr.adamsatoms.com 但是我的系統啓動正常。我是否正確閱讀了MBR?它真的是MBR嗎?爲什麼會發生?這是我的代碼閱讀的一部分,如果它有幫助:MBR說無效的分區表 - 但系統工作!爲什麼?

 mov dx,80h ; hard disk first drive 
     mov cx,1 ; Cylinder & Sector 
     mov bx,ds 
     mov es,bx 
     mov bx,offset result 
     mov ax,0201h ; function & sector to be read 
     int 13h  

在此先感謝。

回答

2

這很正常,「垃圾」是組成MBR的機器代碼,如果MBR代碼在嘗試啓動PC時遇到一些問題,那麼會顯示各種錯誤字符串。 MBR代碼的完整分析正好在您所說的頁面上。

+0

謝謝。現在我明白了,所以如果發生錯誤,MBR中的錯誤就可以使用,並不意味着現在有錯誤。 – Auxiliary 2010-01-02 14:38:51

2

您正在看到引導加載程序的一部分。這是存儲在驅動器第一個扇區中的一段程序,它的作用是讀取分區表並開始啓動操作系統。如果失敗了,它會顯示剛剛找到源的錯誤消息......「垃圾」的其餘部分將是引導加載程序的代碼(在機器代碼中),您需要拆卸它以使其有意義。

相關問題