8086的启动过程
文章目錄
- 1 8086的啟動過程
- 1.1 8086啟動時的寄存器情況
- 1.2 BIOS
- 1.3 8086啟動的整體流程
1 8086的啟動過程
1.1 8086啟動時的寄存器情況
8086處理器在啟動或者重啟的時候,會對寄存器執行一個初始化的操作。初始化后的寄存器信息如下:
CS:FF FF,其它的寄存器:00 00。
1.2 BIOS
我們知道8086處理器一共有20根地址線,那么其訪問空間就是1MB,如下:
最頂端的ROM(Read-Only Memory,只讀存儲器)中固化有我們的BIOS(Basic Input Output System,基本輸入輸出系統)。
上電后CPU就會執行地址為0xFFFF0處的代碼,但是我們可以這里距離頂端只有16個字節,所以可執行的代碼是非常有限的。所以,這個地址處存放的是一條跳轉指令,跳轉指令的內容如下:
jmp F000:005C
注意,上面的代碼執行完畢會將CS的值設置為F000,IP的值設置為005C。也就是說處理器會去F005C的地方去執行指令。
1.3 8086啟動的整體流程
啟動重啟計算機,寄存器被初始化
CS:FFFF IP:0000
FFFF0—> jmp F000:005C
CS:F000 IP:005C
F005C—>依次執行BIOS中的指令
BIOS所做的最后一件事:將主引導扇區中(0面0道1扇區,最后兩個字節為硬盤主引導扇區的有效標志,必須為0x55,0xaa)的內容加載到7C00的位置處。
BIOS的最后一條指令:JMP 0000:7C00
CS:0000 IP:7C00
07C00—>執行主引導扇區中的指令
1)加載操作系統自舉代碼到內存中
2)通過一條跳轉指令,使處理器去執行操作系統的自舉代碼
參考資料:
總結
- 上一篇: #line使用分析
- 下一篇: #pragma使用分析