1. 通用寄存器
EAX 用於操作數和結果數的累加器
EBX 指向數據內存段中的數據指針
ECX 計數器
EDX IO指針
EDI 用於字符串操作的目標數據指針
ESI 用於字符串操作的源數據指針
ESP 堆棧指針
EBP 堆棧數據指針
其中EAX, EBX, ECX, EDX可以通過16位和8位寄存器引用(AX, AH, AL)
2. 段寄存器
IA-32平臺允許使用3種內存模型: 平坦內存模式,分段內存模式,實地址模式
平坦內存模式: 把全部系統內存表示爲連續的地址空間,通過線性地址訪問內存
分段內存模式: 把系統內存劃分爲獨立的段組,通過位於寄存器中的指針進行引用.每個段用於包含特定的數據.一個段用於存放指令碼,一個段用於包含數據,第三個包含堆棧.
段中的內存位置是通過邏輯地址引用的,邏輯地址是由段地址加上偏移量構成,處理器把邏輯地址轉換爲相應的線性地址以便訪問.
段寄存器:
CS 代碼段
DS 數據段
SS 堆棧段
ES, FS, GS 爲附加段, 每個段寄存器都是16位.
實地址模式: 所有的段寄存器都指向線性地址0,並且都不會被程序改動, 所有的指令,數據,堆棧都是通過他們的線性地址訪問
3.指令指針寄存器EIP, 不能直接修改該寄存器.
4.控制寄存器
CR0 控制操作模式和處理器當前狀態的系統標誌
CR1 當前沒有使用
CR2 內存頁面錯誤信息
CR3 內存頁面目錄信息
CR4 支持處理器特性和說明處理器特性能力的標誌
控制寄存器不能直接訪問,必須通過通用寄存器來訪問.
5.標誌
IA-32使用單一的寄存器來包含一組狀態控制和系統標誌, EFLAGS寄存器包含32爲標誌信息.
*)狀態標誌
CF(bit0) 進位標誌,無符號數數學操作產生最高有效位的進位
PF(bit2) 奇偶校驗標誌,表明數學操作的結果寄存器中是否包含錯誤數據
AF(bit4) 輔助進位標誌,用於判斷二進制編碼的10進制(BCD)數學操作是否進位
ZF(bit6) 0標誌,操作結果爲0
SF(bit7) 符號標誌, 判斷結果的最高有效位
OF(bit11) 溢出標誌
*)控制標誌
DF 方向標誌,用於控制處理器字符串指令自動遞增或者遞減內存地址.
*)系統標誌
TF(bit8) 陷阱標誌,爲1時啓用單步模式,每次只執行一個命令
IF(bit9) 中斷使能標誌,控制處理器響應外部中斷信號
IOPL(bit12:13) IO特權級別標誌,表明當前運行任務的IO特權級別(值越小級別越高)
NT(bit14)嵌套任務標誌控制當前運行的任務是否連接到前一個任務,用於嵌套中斷
RF(bit16) 恢復標誌用於控制在調試模式中如何響應異常
VM(bit17) 虛擬8086模式,表明處理器處在虛擬8086模式,而不是保護模式或者實模式
AC(bit18) 對準檢查標誌,用於啓用內存引用的對準檢查
VIF(bit19) 虛擬中斷標誌,當處理器在虛擬模式中操作時,該標誌起IF標誌的作用
VIP(bit20) 虛擬中斷掛起標誌,在虛擬模式操作時用於表示一箇中斷正在被掛起
ID(bit21) 表示CPU是否支持cpuid指令,如果處理器能夠設置或者清零這個標誌,表示處理器支持該指令