IA-32體系結構 寄存器

IA-32 體系,就是常說的x86,i386體系結構,是英特爾的32位架構。
從80386開始使用IA-32的32位體系,至今仍然在使用。
這裏寫圖片描述
IA-32 架構提供了10個32位和6個16位的寄存器,分爲三類:
1、通用寄存器
2、控制寄存器
3、段寄存器

通用寄存器分爲數據寄存器、指針和索引寄存器。

通用寄存器包括:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。
前四個是數據寄存器
接着的兩個是索引寄存器,和字符串處理指令相關。
最後的兩個是指針寄存器,主要用來維護棧。
ESP指向棧頂,EBP指向棧底

控制寄存器:EIP、EFLAGS
EIP 跟蹤下一條要執行的指令,也稱爲程序寄存器。
段寄存器6個:CS、ES、DS、FS、GS、SS。
CS:代碼段起始地址寄存器
DS:數據段起始地址寄存器
SS(ES):擴展段寄存器

系統寄存器

(1)EFLAGS寄存器:控制任務和模式的切換、中斷處理、指令跟蹤和訪問權限。
(2)控制寄存器:CR0、CR1、CR3、CR4、包含用來控制系統級別操作的數據和信息
(3)調試寄存器
(4)GDTR、LDTR、IDTR寄存器(內存管理相關寄存器)
(5)任務寄存器
(6)型號相關寄存器

內存管理寄存器

GDTR:保存GDT的基址(GDT第一個字節的地址)和表限(表的大小)
LDTR:包括 16位的段選擇碼、基址(LDT段的起始地址)、段限(段的大小)和LDT描述符
IDTR:IDT的基址和大小

IP寄存器:存放偏移量
CR0:最高位PG,表示分頁機制0未開啓 1開啓
CR2:發生缺頁異常的虛擬地址
CR3:頁目錄的起始地址
CR4:PAE位 物理地址擴展 0 未開啓 1開啓

參考書目《Linux_Memory_Address_Mapping》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章