一. 如果传递指针给函数
long cread(long *p){
long result = *p;
return result;
}
visual studio得到的汇编代码:
long result = *p;
mov eax,dword ptr [p]
mov ecx,dword ptr [eax]
mov dword ptr [result],ecx
return result;
mov eax,dword ptr [result]
那么
eax, 代表了result的值
p, 代表了&p的值, 相当于:ebp+立即数。
[p], 代表了p的值。
[[p]], 代表了*p的值(注:[[p]]这样写是为了帮助理解)
而如果用gcc生成的汇编代码: