80x86保護模式

2022-04-23 03:11:44 字數 1070 閱讀 6583

請教: 

1、何為實位址方式? 

2、何為保護方式? 

3、二者的區別是什麼?(能否詳細) 

4、什麼是虛擬位址? 

5、什麼是對映? 

6、何為浮點數? 

回答: 

如果你想詳細地搞清以上問題,建議你去閱讀有關386、486或pentium彙編的書(8086/8088的彙編的書一般沒有保護方式、虛擬位址、浮點數等概念),一般都會有專門的部分來討論這些問題,因為要想準確地知道這些問題,還真需要花一些工夫。 

這裡簡單地解釋一下,8086/8088的微機只有一種工作模式(即實模式)只能處理1m以下的位址(16位),這種位址被城為實位址。後來intel為了突破1m的記憶體的限制,推出了386等晶元,增加了保護模式,在32位保護模式下,程式可以訪問4g記憶體空間。但同時為了同以前的程式保持相容,所以舊程式在實模式下執行,而32位程式可以執行在保護模式下,從而最大地發揮伺服器的能力。dos是執行在實模式的,而windows 9x/nt都是執行在保護模式的。cpu有專門的保護模式指令。這裡有一篇簡介386mode.zip。 

intel的32位處理器可以允許作業系統建立自己的記憶體管理機制,這樣每個應用程式不是直接讀寫實際存在的物理記憶體,而是訪問作業系統提供的虛擬記憶體,這樣的優點是程式可以使用硬碟等其他裝置的空間模擬記憶體,而且在實際軟體時可以不考慮使用者實際擁有的物理記憶體的。windows就採用了這樣的記憶體管理機制,所以你的程式操作的不是實際的實體地址,而是作業系統提供的虛擬位址。由實體地址到虛擬位址,存在著對應關係,即對映。不同的作業系統的管理方法可能不同。 

浮點數是表示小數的一種方法。所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定。整數可以看做是一種特殊的定點數,即小數點在末尾。8086/8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算。一般的浮點數有點象科學計數法,包括符號位、指數部分和尾數部分。 

zhang renjian的意見: 

實際上80x86有乙個叫做80x87的協處理器,用於處理浮點運算。同理:80286,80386有80x287,80x387協處理器。(主持人注:8086-386的使用者多數都不購買協處理器,而多數使用軟體來模擬協處理器的指令。)

80X86 保護模式

保護模式定義 保護 用硬體對每個任務使用的記憶體空間進行保護,阻 止其他任務的非法訪問。特點如下 a 採用虛擬儲存管理,啟用分段和分頁機制。允許關閉分頁機制 b 段內偏移位址 32位,每個段最大232 b 4gb 每個程式最多可以使用 16k個段,理論上的虛擬位址空間為 4gb 16k 64tb c...

80x86的保護模式

通過對程式使用的儲存區採用分段 分頁的儲存管理機制,達到分組使用 互不干擾的保護目的。能為每個任務提供一台虛擬處理器,使每個任務單獨執行,快速切換。所以,記憶體位址由段基位址 偏移位址構成。描述符表分為兩類 1.gdt是全域性描述符表,主要存放作業系統和各任務公用的描述符,也存放ldt描述符。2.l...

80x86的保護虛位址模式

在保護模式下,80x86支援虛擬儲存器的功能,乙個任務可執行多達16kb個段,每個段最大可為4gb,故乙個任務最大可達64t的虛擬位址。保護模式下執行的程式分為4個特權等級 0 1 2 3,作業系統核心執行在最高特權等級0 使用者程式執行在最低特權等級3。80x86中有完善的特權檢查機制,既能實現資...