|  | 
 
 发表于 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反汇编结果   |