從操作系統的角度看,Intel 80x86微處理器有三種工作模式:實地址模式、保護模式和虛擬8086 模式。當CPU復位時,自動進入實地址模式。通過修改CR0和控制寄存器,可進行實地址模式和保護模式之間的轉換;執行IREDT指令或進行任務的轉換, 可由保護模式轉移至虛擬8086模式。Pentium微處理器除上述三種工作方式外,增加了系統管理方式(SMM)。SMM方式為系統設計人員實現高級管 理提供方便。
實地址模式是最基本的工作方式。實地址模式與16位微處理器8086/8088的實地址模式保持兼容,原有的16位微處理器的程序可不加修改地在實地址模式下運行;32位微處理器的實地址模式具有更強的功能,增加了寄存器,擴充了指令,可進行32位操作。
保護模式的特點是引入了虛擬存儲器的概念,可支持多任務操作。在保護模式方式下,32位CPU可訪問的物理存儲空間為4GB(232B),程序可用的虛 擬存儲空間為64TB(246B)。保護模式支持四種特權級,可以隔離和保護操作系統的核心代碼不受用戶軟件的破壞,防止應用程序之間的干擾。
虛擬8086模式是一種既有保護功能又能執行16位微處理器軟件的工作方式。虛擬8086模式的工作原理與保護模式相同,但程序指定的邏輯地址解釋與8086微處理器相同。虛擬8086模式可以看做保護模式的一種子方式。
2.3.2 實模式存儲器尋址
8086/8088只能工作于實模式,而80286及其以上的微處理器可工作于實模式、保護模式和虛擬8086模式。
實模式操作方式只允許微處理器尋址第一個1MB存儲器空間,即使是Pentium微處理器也是如此。存儲器中第一個1MB存儲單元稱為實模式存儲器或常 規內存,DOS操作系統要求微處理器工作于實模式。實模式操作時,允許為8086/8088(只包含1MB存儲器)設計的應用軟件不用修改,就可以在 80286及更高型號的微處理器中運行。軟件的向上兼容性是Intel系列微處理器不斷成功的重要原因之一。在任何情況下,這些微處理器每次加電或復位 后,都默認以實模式開始工作。
1.存儲器的組織和分段
1)存儲器的組織
存儲器用于存儲程序 和數據。存儲器存儲信息的基本單位是一個二進制位,稱為bit;8位(bit)組成一個字節(byte),構成一個存儲單元。8086/8088微機的字 長(word)16位,由兩個字節組成;80386、80486和Pentium微機的字長32位,由四個字節組成。
實模式操作方式 只允許微處理器尋址第一個1MB存儲器空間,需要20位地址線。每個存儲單元都有一個地址,用20位二進制數(5位16進制數)表示,從 00000H~FFFFFH。每個存儲單元存放一個字節的數據,例如:(00002H)34H。相鄰兩個存儲單元可構成一個字長為16位的字,在對準字 時,用偶地址表示,例如:(00002H)1234H。同一個地址既可以看成是字節單元的地址,又可看成是字單元的地址,這要根據使用情況來確定。字長為 32位的字由相鄰四個存儲單元構成,其地址由最低位的偶地址表示,例如:(00002H)56781234H。
2)存儲器的分段結構
任何軟件在運行時,必須預先將程序和要處理的數據送入內存。由于程序和數據應具有邏輯獨立性,各程序之間也應當互相獨立,因此計算機系統把存儲器分為相對獨立的許多內存段,每個段存放不同的程序或數據。由此形成存儲器的分段管理的思想。
實模式操作方式下對1MB的存儲單元進行分段管理,是將1MB的存儲空間分為若干段,每個段的容量小于等于64KB。每個段都是獨立尋址的邏輯單位,用 于存放程序或數據。各邏輯段在存儲器中采用浮動方式,即可以鄰接、間隔、完全重疊或部分重疊。一個存儲單元的物理地址可以屬于一個邏輯段,也可以同屬幾個 邏輯段。對8086/8088CPU來說,任何時候一個程序當前只能訪問四個段:代碼段、數據段、堆棧段和附加段,每個段的起始地址(基地址)由CS、 DS、SS、ES四個段寄存器存放。80386以后的微處理器增加了FS和GS兩個附加段段寄存器,每個程序當前能訪問六個段。
為物理地址
3)邏輯地址和物理地址
采用分段管理后,存儲器的地址有物理地址和邏輯地址之分。實模式下,邏輯地址由段基址和偏移地址組成,它們都是16位無符號數;段基址來源于段寄存器, 如CS、DS、SS和ES,偏移地址來自不同的寄存器(如SP、BP、SI、DI和IP等)、位移量和比例因子的組合。物理地址是真正的存儲單元的地址, 用20位二進制地址碼(或5位16進制數)表示。