0169-進(jìn)入保護(hù)模式
2023-08-18 10:44 作者:jiangbo4444 | 我要投稿
環(huán)境
Time 2022-11-10
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
說明
參考:《x86匯編語言:從實(shí)模式到保護(hù)模式》李忠
目標(biāo)
從十六位的實(shí)模式進(jìn)入 32 位保護(hù)模式。
匯編代碼
全局描述符表
lgdt 命令用來加載 GDT,需要給一個(gè)地址,該地址就是下面的全局描述表。
全局描述符表 GDT 的地址包含四十八位,低十六位為界限值,高三十二位為物理地址。
GDT 中定義了三個(gè)段,第 0 個(gè)默認(rèn)都是 0,第一段定義了顯存的位置。
第二段定義了代碼段的位置。
A20 地址線
打開 A20 地址線,可以訪問更大的內(nèi)存空間。
打開保護(hù)模式
保護(hù)模式啟動(dòng)標(biāo)志在 cr0 寄存器,將最低位的保護(hù)模式打開。
三十二位指令
最后使用一個(gè)跳轉(zhuǎn)指令,清空加載的 16 位指令,刷新成 32 位指令。下面就是 bits 32 定義的指令。
顯示 hello
從 GDT 中獲取高速緩存器的內(nèi)容放入數(shù)據(jù)段,然后執(zhí)行輸出。
總結(jié)
了解了從實(shí)模式進(jìn)入保護(hù)模式的方法。
附錄
標(biāo)簽: