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》

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