1、定点寄存器组
IA-32中的定点寄存器有
- 8个通用寄存器
- 2个专用寄存器
- 6个段寄存器
通用寄存器指的是没有专门用途的可以存放各类定点操作数的寄存器。8个通用寄存器的长度为32位,其中
- 累加器EAX、基址寄存器EBX、计数寄存器ECX、数据寄存器EDX主要用来存放操作数;
- 栈指针寄存器ESP、基址寄存器EBP、源变址寄存器ESI、目标变址寄存器EDI主要用来存放变址值或指针。
专用寄存器指的是有专门用途的寄存器。其长度为32位。
- 指令指针寄存器EIP与程序计数器PC是功能完全一样的寄存器,名称不同而已,都是用来存放将要执行的下一条指令的地址的寄存器;
- 标志寄存器EFALGS主要用于记录机器的状态和控制信息。
下面是EFLAGS寄存器各位表示的信息:
31~22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
保留 | ID | VIP | VIF | AC | VM | RF | 0 | NT | IOPL | O | D | I | T | S | Z | 0 | A | 0 | P | 1 | C |
EFLAGS寄存器的第0~11位中的9个标志位按功能可分为:
- 6个条件标志,用来存放运行的状态信息,由硬件自动设定。条件标志也称为条件码。
- 3个控制标志,用于中断响应、串操作和单步执行等控制,由软件设定。