4:
int i=5,b=0;
00401028
mov
dword ptr [ebp-4],5
0040102F
mov
dword ptr [ebp-8],0
5:
b=(++i)+(++i)+(++i);
00401036
mov
eax,dword ptr [ebp-4]
00401039
add
eax,1
0040103C
mov
dword ptr [ebp-4],eax
;第一次++i,i=6
0040103F
mov
ecx,dword ptr [ebp-4]
00401042
add
ecx,1
00401045
mov
dword ptr [ebp-4],ecx
;第二次++i,i=7
00401048
mov
edx,dword ptr [ebp-4]
0040104B
add
edx,dword ptr [ebp-4]
;i+i=14,中间变量值暂存在寄存器edx中
0040104E
mov
eax,dword ptr [ebp-4]
00401051
add
eax,1
00401054
mov
dword ptr [ebp-4],eax
;第三次++i,i=8
00401057
add
edx,dword ptr [ebp-4]
;edx+i=14+8=22,将中间变量值和i相加,结果仍然放在edx中
0040105A
mov
dword ptr [ebp-8],edx
;b=edx=22
6:
printf("%d,%d\n",i,b);