|
发表于 2017-7-10 10:51:32
|
显示全部楼层
#include <stdio.h>
int main(void)
{
int i = 5, j = 5, p, q;
p = (i++) + (i++) + (i++);
q = (++j) + (++j) + (++j);
printf("%d,%d,%d,%d", p, q, i, j);
return 0;
}
自己看吧#include <stdio.h>
int main(void)
{
010C4010 xchg ax,ax
010C4012 push ebp
010C4013 mov ebp,esp
010C4015 sub esp,0F0h
010C401B push ebx
010C401C push esi
010C401D push edi
010C401E lea edi,[ebp-0F0h]
010C4024 mov ecx,3Ch
010C4029 mov eax,0CCCCCCCCh
010C402E rep stos dword ptr es:[edi]
int i = 5, j = 5, p, q;
010C4030 mov dword ptr [i],5
010C4037 mov dword ptr [j],5
p = (i++) + (i++) + (i++);
010C403E mov eax,dword ptr [i]
010C4041 add eax,dword ptr [i]
010C4044 add eax,dword ptr [i]
010C4047 mov dword ptr [p],eax
010C404A mov ecx,dword ptr [i]
010C404D add ecx,1
010C4050 mov dword ptr [i],ecx
010C4053 mov edx,dword ptr [i]
010C4056 add edx,1
010C4059 mov dword ptr [i],edx
010C405C mov eax,dword ptr [i]
010C405F add eax,1
010C4062 mov dword ptr [i],eax
q = (++j) + (++j) + (++j);
010C4065 mov eax,dword ptr [j]
010C4068 add eax,1
010C406B mov dword ptr [j],eax
010C406E mov ecx,dword ptr [j]
010C4071 add ecx,1
010C4074 mov dword ptr [j],ecx
010C4077 mov edx,dword ptr [j]
010C407A add edx,1
010C407D mov dword ptr [j],edx
010C4080 mov eax,dword ptr [j]
010C4083 add eax,dword ptr [j]
010C4086 add eax,dword ptr [j]
010C4089 mov dword ptr [q],eax
printf("%d,%d,%d,%d", p, q, i, j);
010C408C mov eax,dword ptr [j]
010C408F push eax
010C4090 mov ecx,dword ptr [i]
010C4093 push ecx
010C4094 mov edx,dword ptr [q]
010C4097 push edx
010C4098 mov eax,dword ptr [p]
010C409B push eax
010C409C push offset string "%d,%d,%d,%d" (010C6BCCh)
010C40A1 call _printf (010C1361h)
010C40A6 add esp,14h
return 0;
010C40A9 xor eax,eax
}
010C40AB pop edi
}
010C40AC pop esi
010C40AD pop ebx
010C40AE add esp,0F0h
010C40B4 cmp ebp,esp
010C40B6 call __RTC_CheckEsp (010C1118h)
010C40BB mov esp,ebp
010C40BD pop ebp
010C40BE ret
|
|