69,371
社区成员
发帖
与我相关
我的任务
分享
int i;
int j = 1;
mov dword ptr [ebp-14h],1
i = (++j) + (++j);
mov eax,dword ptr [ebp-14h]
add eax,1
mov dword ptr [ebp-14h],eax
mov ecx,dword ptr [ebp-14h]
add ecx,1
mov dword ptr [ebp-14h],ecx
mov edx,dword ptr [ebp-14h]
add edx,dword ptr [ebp-14h]
mov dword ptr [ebp-8],edx
这之后显然 i=6;
这是vs下的汇编,其它编译器,效果很可能不一样
int j = 1;
mov dword ptr [ebp-8],1
(++j) + (++j);
mov eax,dword ptr [ebp-8]
add eax,1
mov dword ptr [ebp-8],eax
mov ecx,dword ptr [ebp-8]
add ecx,1
mov dword ptr [ebp-8],ecx
显然,之后j=3;