所以这里[ebp-4]应该是某个局部变量的地址
右键该地址: 可以看到该地址是调用函数的下一条指令地址: 我们追踪下stack的变化就看到如下栈提升以后的情况: 那个返回地址刚好就是EBP+4! 当然,记得去结合我文章里写堆栈图的例子更加容易理解。
这个是数组,就是把edx的值付给偏移为[ecx+ebp乘以4]这个地址,你前面还少了个mov
4、段寄存器段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。CPU内部的段寄存器:CS——代码段寄存器(Code Segment Register),其值为代码段的段值;DS——数据段寄存器(Data Segment Register),...
而相对于EBP的地址的是帮你把这些N对应的东西展示出来了而已 太长不看一句话解释版:因为执行了:MOV ...
这个时候 EBP+4 是一个DWORD的的变量 +8 同样 所以..我感觉你这个好像是无解的...不过个人感觉应该...
就是ebp的内容乘以4的结果和ecx相加得到一个地址,然后edx的值放到那里去啊
函数的返回地址就在那儿,你改改看还能否返回去?
高位在高,先移低的,移向低地址4字节
B、ebp:基址指针(Base Pointer),X86通用寄存器,始终指向栈底。 C、eip:指令指针(Instruction Pointer),X86通用寄存器,始终指向下一条指令的地址。 D、ebp:基址指针(Base Pointer),X86通用寄存器,始终指向栈顶。 你可能感兴趣的试题 点击查看答案 点击查看答案 点击查看答案 点击查看答案 点击查看答案...