80386四種運行模式
- 實模式
- 保護模式
- SMM模式
- 虛擬8086模式
實模式:80386加電啟動后出于實模式運行狀態(tài),在這種狀態(tài)下軟件可訪問的物理內(nèi)存空間不能超過1MB,且無法發(fā)揮Interl 80386以上級別的32位CPU的4GB內(nèi)存管理能力。
保護模式:支持內(nèi)存分頁機制,提供了對虛擬內(nèi)存的良好支持。保護模式下的80386支持多任務(wù),還支持優(yōu)先級機制,不同的程序可以運行在不同的優(yōu)先級上。優(yōu)先級一共分0~3 4個級別,OS運行在最高的優(yōu)先級0上,應(yīng)用程序則運行在比較低的級別上;配合良好的檢查機制后,既可以在任務(wù)間實現(xiàn)數(shù)據(jù)的安全共享也可以很好地隔離各個任務(wù)。
內(nèi)存架構(gòu)
- 地址:訪問內(nèi)存空間的索引
- 80386是32位的處理器,既可以尋址的物理內(nèi)存地址空間為2^32 = 4G字節(jié)
- 物理內(nèi)存地址空間是處理器提交到總線上用于訪問計算機系統(tǒng)中的內(nèi)存和外設(shè)的最終地址。一個計算機系統(tǒng)中只有一個物理地址空間。
- 線性地址空間是在OS的虛擬內(nèi)存管理之下每個運行的應(yīng)用程序能訪問的地址空間。每個運行的應(yīng)用程序都認為自己獨享整個計算機系統(tǒng)的地址空間,這樣可讓多個運行的應(yīng)用程序之間相互隔離。
- 邏輯地址空間是應(yīng)用程序直接使用的地址空間。
段機制啟動、頁機制未啟動:邏輯地址->段機制處理->線性地址=物理地址;
段機制和頁機制都啟動:邏輯地址->段機制處理->線性地址->頁機制處理->物理地址
寄存器
80386的寄存器:
- 通用寄存器
- 段寄存器
- 指令指針寄存器(尋址相關(guān))
- 標(biāo)志寄存器
- 控制寄存器
- 系統(tǒng)地址寄存器,調(diào)試寄存器,測試寄存器
通用寄存器
- EAX:累加器
- EBX:基址寄存器
- ECX:計數(shù)器
- EDX:數(shù)據(jù)寄存器
- ESI:源地址指針寄存器
- EDI:目的地址指針寄存器
- EBP:基址指針寄存器
- ESP:堆棧指針寄存器
段寄存器:
- CS:代碼段
- DS:數(shù)據(jù)段
- ES:附加數(shù)據(jù)段
- SS:堆棧段
- FS:附加段
- GS:附加段
指令寄存器 & 標(biāo)志寄存器
- EIP:指令寄存器
EIP的低16位就是8086的IP,它存儲的是下一條要執(zhí)行指令的內(nèi)存地址,在分段地址轉(zhuǎn)換中,表示指令的段內(nèi)偏移地址。
- EFLAGS:標(biāo)志寄存器
IF(Interrupt Flag):中斷允許標(biāo)志位,由CLI,STI兩條指令來控制;設(shè)置IF使CPU可識別外部(可屏蔽)中斷請求。復(fù)位IF則禁止中斷。IF對不可屏蔽外部中斷和故障中斷的識別沒有任何作用。
CF,PF,ZF,...