*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 又和谁不一样了?
[解决办法]
[p]表示p这个变量里面存的内容。依照上面的代码,当然就是a的地址了。
按照这个说法,对应起来,其实就是c里面的p