磁盤引導程序原理及簡介


一、介紹

  • 系統開機或者重啟
    1. BIOS 加電自檢 ( Power On Self Test -- POST )。BIOS執行內存地址為 FFFF:0000H 處的跳轉指令,跳轉到固化在ROM中的自檢程序處,對系統硬件(包括內存)進行檢查。
    2. 讀取主引導記錄(MBR)。當BIOS檢查到硬件正常並與 CMOS 中的設置相符后,按照 CMOS 中對啟動設備的設置順序檢測可用的啟動設備。BIOS將相應啟動設備的第一個扇區(也就是MBR扇區)讀入內存地址為0000:7C00H 處。
    3. 檢查0000:7DFEH-0000:7DFFH(MBR的結束標志位)是否等於55AAH,若不等於則轉去嘗試其他啟動設備,如果沒有啟動設備滿足要求則顯示"NO ROM BASIC"然后死機。
    4. 當檢測到有啟動設備滿足要求后,BIOS將控制權交給相應啟動設備。啟動設備的MBR將自己復制到0000:0600H處, 然后繼續執行。
    5. 根據MBR中的引導代碼啟動引導程序。
引導程序

二、幾個問題

  • 為什么需要磁盤引導程序


為什么需要磁盤引導程序而不是直接載入操作系統?或許是因為歷史原因,BIOS最初是為最原始的8位PC所創,8位的PC磁盤很小,所以BIOS只能先載入磁盤引導程序然后通過磁盤引導程序導入操作系統。

  • 磁盤引導程序為什么要從1扇區,0磁頭,0磁道加載到7c00H處


“引導程序加載器--int19”。由於BIOS加載磁盤引導程序時需要調用系統中斷int19來加載引導程序,而這個中斷指定了將磁盤1扇區,0磁頭,0磁道加載到7c00H處。

  • 磁盤引導程序為什么最大只能是512字節


“A bootstrap must be exactly512 bytes long because of the two byte check and the one sector limitation.”
“一個引導程序必須為512字節,因為他的大小有一個扇區的限制,最后兩個字節需要設置為'0xAA55'。”

  • 磁盤引導程序為什么是16位


因為DOS系統是16位,X86系統都向后兼容引導時的16位模式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM