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