日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

32位x86处理器架构

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 32位x86处理器架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節重點講解了 32 位 x86 處理器的基本架構特點。這些處理器包括了 Intel IA-32 系列中的成員和所有 32 位 AMD 處理器。

?

操作模式

x86 處理器有三個主要的操作模式:保護模式、實地址模式和系統管理模式;以及一個子模式:虛擬 8086 (virtual-8086) 模式,這是保護模式的特殊情況。以下是對這些模式的簡介:

1) 保護模式 (Protected Mode)

保護模式是處理器的原生狀態,在這種模式下,所有的指令和特性都是可用的。分配給程序的獨立內存區域被稱為段,而處理器會阻止程序使用自身段范圍之外的內存。

2) 虛擬 8086 模式 (Virtual-8086 Mode)

保護模式下,處理器可以在一個安全環境中,直接執行實地址模式軟件,如 MS-DOS 程序。換句話說,如果一個程序崩潰了或是試圖向系統內存區域寫數據,都不會影響到同一時間內執行的其他程序。現代操作系統可以同時執行多個獨立的虛擬 8086 會話。

3) 實地址模式 (Real-Address Mode)

實地址模式實現的是早期 Intel 處理器的編程環境,但是增加了一些其他的特性,如切換到其他模式的功能。當程序需要直接訪問系統內存和硬件設備時,這種模式就很有用。

4) 系統管理模式 (System Management Mode)

系統管理模式 (SMM) 向操作系統提供了實現諸如電源管理和系統安全等功能的機制。這些功能通常是由計算機制造商實現的,他們為了一個特定的系統設置而定制處理器。

基本執行環境

1) 地址空間

在 32 位保護模式下,一個任務或程序最大可以尋址 4GB 的線性地址空間。從 P6 處理器開始,一種被稱為擴展物理尋址 (extended physical addressing) 的技術使得可以被尋址的物理內存空間增加到 64GB。

與之相反,實地址模式程序只能尋址 1MB 空間。如果處理器在保護模式下運行多個虛擬 8086 程序,則每個程序只能擁有自己的 1MB 內存空間。

2) 基本程序執行寄存器

寄存器是直接位于 CPU 內的高速存儲位置,其設計訪問速度遠高于傳統存儲器。例如,當一個循環處理為了速度進行優化時,其循環計數會保留在寄存器中而不是變量中。

下圖展示的是基本程序執行寄存器(basic program execution registers)。8 個通用寄存器,6 個段寄存器,一個處理器狀態標志寄存器(EFLAGS),和一 個指令指針寄存器(EIP)。

通用寄存器

通用寄存器主要用于算術運算和數據傳輸。如下圖所示,EAX 寄存器的低 16 位在使用時可以用 AX 表示。

一些寄存器的組成部分可以處理 8 位的值。例如,AX 寄存器的高 8 位被稱為 AH,而低 8 位被稱為 AL。同樣的重疊關系也存在于 EAX、EBX、ECX 和 EDX 寄存器中:

32 位16 位8 位(高)8 位(低)
EAXAXAHAL
EBXBXBHBL
ECXCXCHCL
EDXDXDHDL

其他通用寄存器只能用 32 位或 16 位名稱來訪問,如下表所示:

32 位16 位32 位16 位
ESISIEBPBP
EDIDIESPSP

特殊用法

某些通用寄存器有特殊用法:

  • 乘除指令默認使用EAX。它常常被稱為擴展累加器(extended accumulator)寄存器。
  • CPU 默認使用 ECX 為循環計數器。
  • ESP 用于尋址堆棧(一種系統內存結構)數據。它極少用于一般算術運算和數據傳輸,通常被稱為擴展堆棧指針(extended stack pointer)寄存器。
  • ESI 和 EDI 用于高速存儲器傳輸指令,有時也被稱為擴展源變址(extended source index)寄存器和擴展目的變址(extended destination index)寄存器。
  • 高級語言通過 EBP 來引用堆棧中的函數參數和局部變量。除了高級編程,它不用于一般算術運算和數據傳輸。它常常被稱為擴展幀指針(extended frame pointer)寄存器。

段寄存器

實地址模式中,16 位段寄存器表示的是預先分配的內存區域的基址,這個內存區域稱為段。保護模式中,段寄存器中存放的是段描述符表指針。一些段中存放程序指令(代碼),其他段存放變量(數據),還有一個堆棧段存放的是局部函數變量和函數參數。

指令指針

指令指針(EIP)寄存器中包含下一條將要執行指令的地址。某些機器指令能控制 EIP,使得程序分支轉向到一個新位置。

EFLAGS 寄存器

EFLAGS (或 Flags)寄存器包含了獨立的二進制位,用于控制 CPU 的操作,或是反映一些 CPU 操作的結果。有些指令可以測試和控制這些單獨的處理器標志位。

設置標志位時,該標識位 =1;清除(或重置)標識位時,該標志位 =0。

控制標志位

控制標志位控制 CPU 的操作。例如,它們能使得 CPU 每執行一條指令后進入中斷;在偵測到算術運算溢出時中斷執行;進入虛擬 8086 模式,以及進入保護模式。

程序能夠通過設置 EFLAGS 寄存器中的單獨位來控制 CPU 的操作,比如,方向標志位和中斷標志位。

狀態標志位

狀態標志位反映了 CPU 執行的算術和邏輯操作的結果。其中包括:溢出位、符號位、零標志位、輔助進位標志位、奇偶校驗位和進位標志位。下述說明中,標志位的縮寫緊跟在標志位名稱之后:

  • 進位標志位(CF),與目標位置相比,無符號算術運算結果太大時,設置該標志位。
  • 溢出標志位(OF),與目標位置相比,有符號算術運算結果太大或太小時,設置該標志位。
  • 符號標志位(SF),算術或邏輯操作產生負結果時,設置該標志位。
  • 零標志位(ZF),算術或邏輯操作產生的結果為零時,設置該標志位。
  • 輔助進位標志位(AC),算術操作在 8 位操作數中產生了位 3 向位 4 的進位時,設置該標志位。
  • 奇偶校驗標志位(PF),結果的最低有效字節包含偶數個 1 時,設置該標志位,否則,清除該標志位。一般情況下,如果數據有可能被修改或損壞時,該標志位用于進行 錯誤檢測。

3) MMX 寄存器

在實現高級多媒體和通信應用時,MMX 技術提高了 Intel 處理器的性能。8 個 64 位 MMX 寄存器支持稱為 SIMD(單指令,多數據,Single-Instruction,Multiple-Data)的特殊指令。

顧名思義,MMX 指令對 MMX 寄存器中的數據值進行并行操作。雖然,它們看上去是獨立的寄存器,但是 MMX 寄存器名實際上是浮點單元中使用的同樣寄存器的別名。

4) XMM 寄存器

x86 結構還包括了 8 個 128 位 XMM 寄存器,它們被用于 SIMD 流擴展指令集。

浮點單元

浮點單元(FPU, floating-point unit)執行高速浮點算術運算。之前為了這個目的,需要一個獨立的協處理器芯片。從 Intel486 處理器開始,FPU 已經集成到主處理器芯片上。

FPU 中有 8 個浮點數據寄存器,分別命名為 ST(0),ST(1),ST(2),ST(3),ST(4), ST(5), ST (6)和 ST(7)。其他控制寄存器和指針寄存器如下圖所示。

x86 內存管理

x86 處理器按照前面討論的基本操作模式來管理內存。保護模式是最可靠、最強大的,但是它對應用程序直接訪問系統硬件有著嚴格的限制。

在實地址模式中,只能尋址 1MB 內存,地址從 00000H 到 FFFFFH。處理器一次只能運行一個程序,但是可以暫時中斷程序來處理來自外圍設備的請求(稱為中斷(interrupt))。

應用程序被允許訪問內存的任何位置,包括那些直接與系統硬件相關的地址。MS-DOS 操作系統在實地址模式下運行,Windows 95 和 98 能夠引導進入這種模式。

在保護模式中,處理器可以同時運行多個程序,它為每個進程(運行中的程序)分配總共 4GB 的內存。每個程序都分配有自己的保留內存區域,程序之間禁止意外訪問其他程序的代碼和數據。MS-Windows 和 Linux 運行在保護模式下。

在虛擬 8086 模式中,計算機運行在保護模式下,通過創建一個帶有 1MB 地址空間的虛擬 8086 機器來模擬運行于實地址模式的 80×86 計算機。例如,在 Windows NT 和 2000 下,當打開一個命令窗口時,就創建了一個虛擬 8086 機器。同一時間可以運行多個這樣的窗口,并且窗口之間都是受到保護的。

在 Windows NT,2000 和 XP 系統中,某些需要直接使用計算機硬件的 MS-DOS 程序不能運行在虛擬 8086 模式下。

下一篇:1.11?字符在計算機中是如何表示的
1.12?匯編語言布爾表達式
處理器架構
2.1?CPU處理器架構
2.2?32位x86處理器架構
2.3?x86-64處理器架構
2.4?x86計算機組件
匯編語言基礎
3.1?第一個匯編語言程序
3.2?匯編語言常量
3.3?匯編語言保留字
3.4?匯編語言標識符
3.5?匯編語言偽指令

總結

以上是生活随笔為你收集整理的32位x86处理器架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。