一些寄存器的“小奥秘”
一般开始接触“寄存器”(REGISTER)这个名词,都是在汇编。寄存器大致可分为一般寄存器;索引寄存器;堆叠,基底寄存器。
一般寄存器可分为:EAX (accumulator) 累积暂存器——它是很多加法,乘法指令的缺省寄存器
EBX (base) 基底暂存器——在内存寻址时暂放基地址
ECX (counter) 计数暂存器——是重复(REP)前缀指令和loop指令的内定计数器
EDX (data)资料暂存器——总是存放整数除法产生的余数
索引暂存器:SI (Source Index) 来源索引暂存器 DI (Destination Index) 目的索引暂存器
堆叠,基底暂存器 :SP(Stack Pointer) 堆叠指标暂存器 BP(Base Pointer) 基底指标暂存器
esp : 存放当前线程的栈顶指针。
ebp :存放当前线程的栈底指针。
eip :存放下一个CPU指令存放的内存地址。当CPU执行完当前的指令后,从EIP寄存器读取下一条指令的内存地址,然后继续执行。
栈的基本模型
EAX ,EBX ,ECX ,EDX ,:为ax,bx,cx,dx的延伸,且各为32位。
ESI ,EDI ,ESP ,EBP:为si,di,sp,bp的延伸,且各为32位。
eax,ebx,ecx,edx,esi,edi,esp,edp都是8086CPU上的通用寄存器(在C中可以当做变量看待)如:add eax ,-2//给变量eax加上-2.