80386的寄存器可以分为8组:通用寄存器,段寄存器,指令寄存器,指令指针寄存器,标志寄存器,系统地址寄存器,控制寄存器,调试寄存器,测试寄存器。
(1)General Register(通用寄存器):可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
EAX:累加器,
EBX:基址寄存器,
ECX:计数器,
EDX:数据寄存器,
ESI:源地址指针寄存器,
EDI:目的地址指针寄存器,
EBP:基址指针寄存器,
ESP:堆栈指针寄存器
(2)Segment Register(段寄存器,也成段选择子,段选择符:Segment Selector):是因为对内存的分段管理而设置的。计算机需要对内存分段,以分配给不同的程序使用
CS:代码段
DS:数据段
ES:附加数据段
SS:堆栈段
FS:附加段
GS:附加段
(3)Instruction Pointer(指令指针寄存器):EIP的低16位就是8086的IP,它存储的是下一条要执行指令的内存地址,在分段地址转换中,表示指针的段内偏移地址。
(4)Flag Register(标志寄存器):EFLAGS,状态寄存器:CF,PF,AF,ZF,SF,IF等
(5)其他寄存器:CR0,CR2,CR3