OS實驗:x86-32 硬件運行模式

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,...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容