32位處理器的暫存器介紹
32位處理器有三種操作模式:保護模式、實地址模式和系統管理模式。
保護模式:基本模式,所有指令和特性都是可用的
實地址模式:實現程式設計環境
系統管理模式:提供實現電源管理模式和系統安全等功能的機制
一、地址空間
保護模式下,32位處理器可以定址最高4G空間。實地址模式能訪問1M的記憶體。虛擬模式執行的多個程式每個都能訪問1M的記憶體。
二、基本暫存器
32位CPU所含有的暫存器有:
8個32位通用暫存器:
4個數據暫存器(EAX、EBX、ECX和EDX)
2個變址和指標暫存器(ESI和EDI) 2個指標暫存器(ESP和EBP)
6個段暫存器(ES、CS、SS、DS、FS和GS)
1個指令指標暫存器(EIP)
1個標誌暫存器(EFlags)
1、通用暫存器
每個暫存器都可作為一個32位值或兩個16位值來定址使用。某些16位的暫存器能夠按照8位值定址使用。
EAX的低16位稱為AX,AX的高8位稱為AH,低8位稱為AL。
32 | 16 | 高8 | 低8 |
---|---|---|---|
EAX | AX | AH | AL |
EBX | BX | BH | BL |
ECX | CX | CH | CL |
EDX | DX | DH | DL |
下面幾個沒有8位模式:
32 | 16 |
---|---|
ESI | SI |
EDI | DI |
EBP | BP |
ESP | SP |
2、資料暫存器
資料暫存器主要用來儲存運算元和運算結果等資訊,從而節省讀取運算元所需佔用匯流排和訪問儲存器的時間。
32位CPU有4個32位的通用暫存器EAX、EBX、ECX和EDX。
對低16位資料的存取,不會影響高16位的資料。
暫存器EAX通常稱為累加器(Accumulator),用累加器進行的操作可能需要更少時間。可用於乘、 除、輸入/輸出等操作,使用頻率很高;
暫存器EBX稱為基地址暫存器(Base Register)。它可作為儲存器指標來使用;
暫存器ECX稱為計數暫存器(Count Register)。 在迴圈和字串操作時,要用它來控制迴圈次數;在位操作中,當移多位時,要用CL來指明移位的位數;
暫存器EDX稱為資料暫存器(Data Register)。在進行乘、除運算時,它可作為預設的運算元參與運算,也可用於存放I/O的埠地址。
3、變址暫存器
32位CPU有2個32位通用暫存器ESI和EDI。
暫存器ESI、EDI、SI和DI稱為變址暫存器(Index Register),它們主要用於存放儲存單元在段內的偏移量, 它們可作一般的儲存器指標使用。
4、指標暫存器
32位CPU有2個32位通用暫存器EBP和ESP。
它們主要用於訪問堆疊內的儲存單元,並且規定:
EBP為基指標(Base Pointer)暫存器,一般作為當前堆疊的最後單元,用它可直接存取堆疊中的資料;
ESP為堆疊指標(Stack Pointer)暫存器,用它只可訪問棧頂。
5、指令指標暫存器
32位CPU把指令指標擴充套件到32位,並記作EIP
指令指標EIP、IP(Instruction Pointer)是存放下次將要執行的指令在程式碼段的偏移量。
6.標誌暫存器:EFLAG
CF:進位標誌
OF:溢位標誌
SF:符號標誌
ZF:零標誌
AC:輔助進位標誌
PF:奇偶標誌