32位通用寄存器
EAX EBX
ECX EDX
EBP ESP
ESI EDI
八个寄存器都可以作为普通的数据寄存器使用。
但有的有特殊的用途:
但有的有特殊的用途:
EAX 为累加器,
ECX 为计数器,
EBX,EBP 为基址寄存器,
ESI,EDI 为变址寄存器,
EBP 还可以是基指针,
ESP 为堆栈指针
16位通用寄存器
AX(累加器):一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用。
BX(基址寄存器):可作为数据寄存器,也可存放内存的逻辑偏移地址,而AX,CX,DX则不能。
CX(数据寄存器):即可作为数据寄存器,又可在串指令和移位指令中作为计数器。
DX(数据寄存器):除可作为通用寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途。
SI (源变地址寄存器):多用于存放内存的逻辑地址(隐含的逻辑段地址在数据段寄存器中),也可存放数据。
DI (目标变址寄存器):多用于存放内存的逻辑偏移地址(隐含的逻辑段地址在数据段寄存器中),也可存放数据。
BP(基址指针):用于存放内存的逻辑偏移地址(隐含的逻辑段地址在堆栈段寄存器中)。
SP(堆栈指针):用于存放栈顶的逻辑偏移地址(隐含的逻辑段地址在堆栈段寄存器中)。
16位段寄存器
CS(代码段寄存器):存放程序代码段起始地址的高16位。
DS(数据段寄存器):存放数据段起始地址的高16位。
SS(堆栈段寄存器):存放堆栈段起始地址的高16位。
ES(扩展段寄存器):存放扩展数据段地址的高16位。