VC6.0循环语句

来源:互联网 发布:外贸流程知乎 编辑:程序博客网 时间:2024/06/03 01:31

--- 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