通用寄存器(General Purpose Registers,32位,8个)
段寄存器(Segment Registers,16位,6个)
程序状态与控制寄存器(Program Status and Control Register,32位,1个)
指令指针寄存器(Instruction Pointer,32位,1个)
一、通用寄存器(GPR)
IA-32体系结构拥有8个32位通用寄存器(General Purpose Register, GPR),其名称与基本功能如下表所示。

在这8个通用寄存器中,一些通用寄存器可进一步切分为16位或8位寄存器,以保证向后兼容性,具体如下图所示。
例如,寄存器AX引用寄存器EAX的低位字,而AH和AL标识符则分别引用寄存器AX的高字节和低字节。
对于栈指针寄存器和变址寄存器,也可使用对应的16位版本(BP、SP、SI、 DI)来引用32位寄存器的低16位。
通用寄存器切分及命名示意图【注:高(H: High)、低(L: Low)】:

二、EFLAGS寄存器(标志寄存器)
EFLAGS: Flag Register,标志寄存器
IA-32中标志寄存器的名称为EFLAGS,其大小为4个字节(32位),由原来的16位FLAGS寄存器扩展而来。
EFLAGS寄存器的每位都有意义,每位的值或为1或为0,代表On/Off或True/False。
其中有些位由系统直接设定,有些位则根据程序命令的执行

本文详细介绍了IA-32架构中的核心寄存器,包括8个32位通用寄存器(GPR)、32位EFLAGS标志寄存器、32位指令指针寄存器(EIP)以及6个16位段寄存器。通用寄存器用于各种计算任务,EFLAGS寄存器存储运算状态,EIP寄存器指示下一条执行指令的位置,而段寄存器则在保护模式下用于指定逻辑地址的段选择器。通过对这些寄存器的理解,可以更好地掌握IA-32体系结构的工作原理。
2658

被折叠的 条评论
为什么被折叠?



