32位通用寄存器用途总结
32位通用寄存器用途总结EAX - 累加,accumulator, 是很多加法乘法指令的缺省寄存器
EBX - 基址,base, 在内存寻址时存放基地址
ECX - 计数,counter, 是重复(REP)前缀指令和LOOP指令的内定计
数器
EDX - 总是被用来放整数除法产生的余数
函数的返回值经常被放在EAX中。
ESI/EDI - source/destination index,在很多字符串操作指令中,
DS:ESI指向源串,而ES:EDI指向目标串。
EBP - 基址指针, 最经常被用作高级语言函数调用的"框架指针"(frame pointer)。 在破解的时候,经常可以看见一个标准的函数起始代码:
push ebp ;保存当前ebp
mov ebp,esp ;EBP设为当前堆栈指针
sub esp, xxx ;预留xxx字节给函数临时变量.
...
这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数。EBP下方则是临时变量。 函数返回时作 mov esp,ebp/pop ebp/ret 即可.
ESP - 专门用作堆栈指针。