--- E:/program/test/main.cpp ----------------------------------------------------------------------------------------------------------------------------
1: #include <iostream>
2: using namespace std;
3:
4:
5: int main()
6: {
00401030 push ebp
00401031 mov ebp,esp
00401033 sub esp,48h
00401036 push ebx
00401037 push esi
00401038 push edi
00401039 lea edi,[ebp-48h]
0040103C mov ecx,12h
00401041 mov eax,0CCCCCCCCh
00401046 rep stos dword ptr [edi]
7:
8:
9: int a=10;
00401048 mov dword ptr [ebp-4],0Ah
10: do
11: {
12: a=a-1;
0040104F mov eax,dword ptr [ebp-4]
00401052 sub eax,1
00401055 mov dword ptr [ebp-4],eax
13:
14: }
15: while(a);
00401058 cmp dword ptr [ebp-4],0
0040105C jne main+1Fh (0040104f)//注意 do..while() 是往上跳,结构最简单
16:
17:
18: a=10;
0040105E mov dword ptr [ebp-4],0Ah
19: while(a)
00401065 cmp dword ptr [ebp-4],0 //按程序流图,易理解
00401069 je main+46h (00401076)
20: {
21: a=a-1;
0040106B mov ecx,dword ptr [ebp-4]
0040106E sub ecx,1
00401071 mov dword ptr [ebp-4],ecx
22:
23: }
00401074 jmp main+35h (00401065)
24:
25:
26: int b=0;
00401076 mov dword ptr [ebp-8],0
27: for(a=10;a>0;a--)
0040107D mov dword ptr [ebp-4],0Ah //记住for(; ;)里面的内容是被编译在一起
00401084 jmp main+5Fh (0040108f)
00401086 mov edx,dword ptr [ebp-4]
00401089 sub edx,1
0040108C mov dword ptr [ebp-4],edx
0040108F cmp dword ptr [ebp-4],0
00401093 jle main+70h (004010a0)
28: {
29: b=b+1;
00401095 mov eax,dword ptr [ebp-8]
00401098 add eax,1
0040109B mov dword ptr [ebp-8],eax
30:
31: }
0040109E jmp main+56h (00401086)
32:
33:
34: return 0;
004010A0 xor eax,eax
35: }
004010A2 pop edi
004010A3 pop esi
004010A4 pop ebx
004010A5 mov esp,ebp
004010A7 pop ebp
004010A8 ret
--- No source file