首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-07-04 
*p2反汇编的问题int a300A117BEmovdword ptr [a],3int *p&a00A117C5leaeax,[a]00A117C8movdword ptr

*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

热点排行