x86寄存器分类

8个通用寄存器

均为32位。

  • EAX

    累加寄存器(Accumulator Register)。

  • EBX

    基地址寄存器(Base Register)。

  • ECX

    计数寄存器(Count Register)。

  • EDX

    数据寄存器(Data Register)。

  • ESI

  • EDI

    源/目标索引寄存器(Source/Destination Index Register)

  • ESP

    基指针寄存器(Base Pointer Register)

  • EBP

    堆栈指针寄存器(Stack Pointer Register)

6个段寄存器

段寄存器均为16位。

  • CS

    指向代码段的段选择符,与EIP寄存器联合构成指令地址。

  • DS

  • ES

  • FS

  • GS

    指向数据段。

  • SS

    指向栈段的段选择符。

5个控制寄存器

均为32位。

  • CR0
  • CR1

    未启用。

  • CR2

    页故障线性地址寄存器。

  • CR3

    存储页目录表物理内存基地址,也被称为PDBR(Page-Directory Base address Register)

1个标志寄存器

  • EFLAGS

4个系统地址寄存器

  • GDTR
  • LDTR

    局部描述符表寄存器。

  • IDTR

    中断描述符表寄存器。

  • TR

    任务状态段寄存器。

8个调试寄存器

  • DR0
  • DR1
  • DR2
  • DR3
  • DR4
  • DR5
  • DR6
  • DR7

其他寄存器

  • EIP

  • TSC

    时间戳寄存器。

  • 浮点寄存器

参考资料

  • x86寄存器总结
  • Orange’s 一个操作系统的实现
  • 30天自制操作系统
  • Linux内核设计的艺术 第2版