一些符号在OD中意味着什么?

发布时间:2019-06-11 浏览:
展开全部
Eax,ebx,ecx,edx,esi,edi,ebp,esp等。这些是X86汇编语言的CPU中通用寄存器的名称,是32位寄存器。
如果使用C语言进行描述,则可以将这些记录视为变量。
例如,addeax,-2。//可以视为将-2的值加到变量eax中。
这些32位寄存器有许多用途,但每个都有一个“类型”并具有自己的特殊特性。
EAX是一个累加器。这是许多乘法和加法指令的默认记录。
EBX是一个基地址记录,用于存储由内存寻址的基址。
ECX是一个计数器,它是重复指令(REP)和LOOP指令的默认计数器。
EDX总是用于整个部门的其余部分。
ESI / EDI分别称为源/目标索引。这是因为许多字符串操作指令,DS:ESI指向源字符串,ES:EDI指向目标字符串。
EBP是一个基指针(BASEPOINTER)。它通常用作高级语言函数调用中的帧指针。
当它中断时,你经常可以看到标准函数的起始代码:pushebp;特别是保存当前的ebpmovebp。EBP设置为当前堆栈指针xxx的下标。保留字节xxx用于临时变量功能。
因此,EBP构成了功能框架。EBP上方是原始EBP,返回地址和参数。
EBP以下是临时变量。
当函数返回时,movep,ebp / popebp / ret。
ESP专门用作堆栈指针。这被称为堆栈上的顶部指针。堆栈顶部是小地址区域。插入堆栈的数据越多,ESP就越小。
在32位平台上,ESP一次减少4个字节。