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。
| EAX | AX | AH | AL |
| EBX | BX | BH | BL |
| ECX | CX | CH | CL |
| EDX | DX | DH | DL |
下面幾個沒有8位模式:
| 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:奇偶標志
總結
以上是生活随笔為你收集整理的32位处理器的寄存器介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言之堆栈框架
- 下一篇: 如何把单精度二进制数转换成十进制数?