mbr如何將其控制權轉移給引導程式

mbr如何將其控制權轉移給引導程式

我所知道的是以下內容:

啟動時,BIOS 會執行下列順序:

1.開機自我檢測(POST)
2.偵測顯示卡(晶片)的BIOS並執行其程式碼以初始化視訊硬體。
3. 偵測任何其他裝置 BIOS 並呼叫其初始化功能
4. 顯示 BIOS 啟動畫面
5. 執行簡短的記憶體測試(決定係統中有多少記憶體)
6. 設定記憶體和磁碟機參數
7.配置即插即用播放裝置(傳統的PCI 匯流排設備)
8.分配資源(DMA 通道和 IRQ)
9.識別啟動設備

當 BIOS 識別引導裝置(通常是已標記為可開機磁碟的多個磁碟之一)時,它會將區塊 0 從該裝置讀取到記憶體位置 0x7c00 並跳到那裡。

但是此後會發生什麼,即 BIOS 在這個階段如何將控制權交給引導程式

答案1

如同上面的貼文中所提到的,BIOS 只是透過執行到 0x7C00 的跳轉指令來將控制權交給引導程式。

不可啟動裝置的前兩個位元組中可能有 INT 18 指令 (0xCD 0x18)(以及位元組 511、512 處的 55aa),這將導致 BIOS 轉到啟動順序中的下一個裝置。

答案2

既然您提到了 0x7C00,我將專注於 MBR 引導(GPT 是不同的)。

正如您所說,一旦BIOS 確定設備可啟動(即第一個扇區的最後兩個位元組為0x55AA),它就會從磁碟讀取第一個扇區並將其加載到從0x7C00 開始的內存中。一旦發出跳轉指令,CPU 就會開始執行其中的任何程式碼。

然後由引導程式決定接下來要載入和執行的內容。執行載入和跳到下一階段的程式碼必須適合第一個磁區中剩餘的 510 位元組,實際上更少,因為硬碟也有分割表。

延伸閱讀:啟動順序,滾動你自己的引導程式

相關內容