读书人

*p=2反汇编的有关问题

发布时间: 2013-07-04 11:45:32 作者: rapoo

*p=2反汇编的问题
int a=3;
00A117BE mov dword ptr [a],3
int *p=&a;
00A117C5 lea eax,[a]
00A117C8 mov dword ptr [p],eax
*p=2;
00A117CB mov eax,dword ptr [p]
00A117CE mov dword ptr [eax],2

*p=&a理解,下面的就不明白了,主要是mov eax,dword ptr [p]的问题。p与&a的值是一样的,为什么eax与它们不一样?求解
[解决办法]
*p = 2 是向 p 指向的地址写入 2
[p] 取出 p 的值,p 的值就是 C8 那句写入的 eax,也就是 [a] 的地址。有啥子不一致的? eax 又和谁不一样了?
[解决办法]

引用:
hello,adlay
同过这个我想问的重点是,
*p=2;
00A117CB mov eax,dword ptr [p] //[p]是表示*p还是p?
00A117CE mov dword ptr [eax],2 //同求[eax]


对于wangdahu888 这本来就是单步跟踪下的反汇编代码

[p]表示p这个变量里面存的内容。依照上面的代码,当然就是a的地址了。
按照这个说法,对应起来,其实就是c里面的p

读书人网 >C++

热点推荐