0%

函数调用过程

寄存器


  • 1 ESP(Extended Stack Pointer): 堆栈指针,寄存器存放当前线程的栈顶指针;  i.e: move ebp, esp — 用ebp保存当前栈指针;
  • 2 EBP(Extended Base Pointer): 基址指针,寄存器存放当前线程的栈底指针;  i.e: push ebp — 将基址指针压入栈;
  • 3 EIP:寄存器存放下一个CPU指令存放的内存地址,当CPU执行完成当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行;
  • 4 EAX: 累加器(Accumulator),加法乘法指令的缺省寄存器;
  • 5 EBX: 基地址(Base)寄存器,在内存寻址时存放基地址;
  • 6 ECX:计数器(Counter),是重复(REP)前缀指令和LOOP指令的内定计数器;
  • 7 EDX:存放整数除法产生的余数;
  • 8 ESI/EDI: 源/目标索引寄存器(Source/Destination Index), 在很多字符串操作指令中,DS:ESI指向源串,而ES:EDI指向目标串。