|
发表于 2014-8-27 12:47:59
|
显示全部楼层
- 5: int i = 1, n;
- 00401028 mov dword ptr [ebp-4],1
- 6:
- 7: n = (++i) * (++i);
- 0040102F mov eax,dword ptr [ebp-4] //把1传给AX
- 00401032 add eax,1 //eax = eax +1,加一在传给Ax结果为2
- 00401035 mov dword ptr [ebp-4],eax
- 00401038 mov ecx,dword ptr [ebp-4]//再将2传给CX
- 0040103B add ecx,1 //cx+1传给cx,结果为3
- 0040103E mov dword ptr [ebp-4],ecx
- 00401041 mov edx,dword ptr [ebp-4]//再将3传给dx,dx为3
- 00401044 imul edx,dword ptr [ebp-4]//3乘3传给dx
- 00401048 mov dword ptr [ebp-8],edx//j结果9
- 8:
- 9: printf ("%d\n", n);
- 0040104B mov eax,dword ptr [ebp-8]
复制代码 通过上面的反汇编可以很清楚的看到!!!
|
-
VC反汇编结果
|