|
发表于 2013-5-29 23:01:37
|
显示全部楼层
我这里贴一下楼主这段程序的在vs2005中的处理,以下是反汇编的代码- printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
- 004157B3 mov eax,dword ptr [ebp-8]
- 004157B6 neg eax
- 004157B8 mov dword ptr [ebp+FFFFFF18h],eax
- 004157BE mov ecx,dword ptr [ebp-8]
- 004157C1 sub ecx,1
- 004157C4 mov dword ptr [ebp-8],ecx
- 004157C7 mov edx,dword ptr [ebp-8]
- 004157CA neg edx
- 004157CC mov dword ptr [ebp+FFFFFF14h],edx
- 004157D2 mov eax,dword ptr [ebp-8]
- 004157D5 add eax,1
- 004157D8 mov dword ptr [ebp-8],eax
- 004157DB mov ecx,dword ptr [ebp-8]
- 004157DE mov dword ptr [ebp+FFFFFF10h],ecx
- 004157E4 mov edx,dword ptr [ebp-8]
- 004157E7 sub edx,1
- 004157EA mov dword ptr [ebp-8],edx
- 004157ED mov eax,dword ptr [ebp-8]
- 004157F0 mov dword ptr [ebp+FFFFFF0Ch],eax
- 004157F6 mov ecx,dword ptr [ebp-8]
- 004157F9 add ecx,1
- 004157FC mov dword ptr [ebp-8],ecx
- 004157FF mov edx,dword ptr [ebp-8]
- 00415802 sub edx,1
- 00415805 mov dword ptr [ebp-8],edx
- 00415808 mov eax,dword ptr [ebp-8]
- 0041580B add eax,1
- 0041580E mov dword ptr [ebp-8],eax
- 00415811 mov esi,esp
- 00415813 mov ecx,dword ptr [ebp+FFFFFF18h]
- 00415819 push ecx
- 0041581A mov edx,dword ptr [ebp+FFFFFF14h]
- 00415820 push edx
- 00415821 mov eax,dword ptr [ebp+FFFFFF10h]
- 00415827 push eax
- 00415828 mov ecx,dword ptr [ebp+FFFFFF0Ch]
- 0041582E push ecx
- 0041582F mov edx,dword ptr [ebp-8]
- 00415832 push edx
- 00415833 mov eax,dword ptr [ebp-8]
- 00415836 push eax
- 00415837 push 418994h
- 0041583C call dword ptr ds:[0041C420h]
- 00415842 add esp,1Ch
- 00415845 cmp esi,esp
- 00415847 call 004111EF
复制代码 |
|