32位处理器的寄存器介绍
32位處理器有三種操作模式:保護(hù)模式、實(shí)地址模式和系統(tǒng)管理模式。
保護(hù)模式:基本模式,所有指令和特性都是可用的
實(shí)地址模式:實(shí)現(xiàn)程序設(shè)計(jì)環(huán)境
系統(tǒng)管理模式:提供實(shí)現(xiàn)電源管理模式和系統(tǒng)安全等功能的機(jī)制
一、地址空間
保護(hù)模式下,32位處理器可以尋址最高4G空間。實(shí)地址模式能訪問1M的內(nèi)存。虛擬模式運(yùn)行的多個(gè)程序每個(gè)都能訪問1M的內(nèi)存。
二、基本寄存器
32位CPU所含有的寄存器有:
8個(gè)32位通用寄存器:
4個(gè)數(shù)據(jù)寄存器(EAX、EBX、ECX和EDX)
2個(gè)變址和指針寄存器(ESI和EDI) 2個(gè)指針寄存器(ESP和EBP)
6個(gè)段寄存器(ES、CS、SS、DS、FS和GS)
1個(gè)指令指針寄存器(EIP)
1個(gè)標(biāo)志寄存器(EFlags)
1、通用寄存器
每個(gè)寄存器都可作為一個(gè)32位值或兩個(gè)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 |
下面幾個(gè)沒有8位模式:
| ESI | SI |
| EDI | DI |
| EBP | BP |
| ESP | SP |
2、數(shù)據(jù)寄存器
數(shù)據(jù)寄存器主要用來保存操作數(shù)和運(yùn)算結(jié)果等信息,從而節(jié)省讀取操作數(shù)所需占用總線和訪問存儲(chǔ)器的時(shí)間。
32位CPU有4個(gè)32位的通用寄存器EAX、EBX、ECX和EDX。
對(duì)低16位數(shù)據(jù)的存取,不會(huì)影響高16位的數(shù)據(jù)。
寄存器EAX通常稱為累加器(Accumulator),用累加器進(jìn)行的操作可能需要更少時(shí)間。可用于乘、 除、輸入/輸出等操作,使用頻率很高;
寄存器EBX稱為基地址寄存器(Base Register)。它可作為存儲(chǔ)器指針來使用;
寄存器ECX稱為計(jì)數(shù)寄存器(Count Register)。 在循環(huán)和字符串操作時(shí),要用它來控制循環(huán)次數(shù);在位操作中,當(dāng)移多位時(shí),要用CL來指明移位的位數(shù);
寄存器EDX稱為數(shù)據(jù)寄存器(Data Register)。在進(jìn)行乘、除運(yùn)算時(shí),它可作為默認(rèn)的操作數(shù)參與運(yùn)算,也可用于存放I/O的端口地址。
3、變址寄存器
32位CPU有2個(gè)32位通用寄存器ESI和EDI。
寄存器ESI、EDI、SI和DI稱為變址寄存器(Index Register),它們主要用于存放存儲(chǔ)單元在段內(nèi)的偏移量, 它們可作一般的存儲(chǔ)器指針使用。
4、指針寄存器
32位CPU有2個(gè)32位通用寄存器EBP和ESP。
它們主要用于訪問堆棧內(nèi)的存儲(chǔ)單元,并且規(guī)定:
EBP為基指針(Base Pointer)寄存器,一般作為當(dāng)前堆棧的最后單元,用它可直接存取堆棧中的數(shù)據(jù);
ESP為堆棧指針(Stack Pointer)寄存器,用它只可訪問棧頂。
5、指令指針寄存器
32位CPU把指令指針擴(kuò)展到32位,并記作EIP
指令指針EIP、IP(Instruction Pointer)是存放下次將要執(zhí)行的指令在代碼段的偏移量。
6.標(biāo)志寄存器:EFLAG
CF:進(jìn)位標(biāo)志
OF:溢出標(biāo)志
SF:符號(hào)標(biāo)志
ZF:零標(biāo)志
AC:輔助進(jìn)位標(biāo)志
PF:奇偶標(biāo)志
總結(jié)
以上是生活随笔為你收集整理的32位处理器的寄存器介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言之堆栈框架
- 下一篇: 如何把单精度二进制数转换成十进制数?