請教:
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中有完善的特權檢查機制,既能實現資...