找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1043|回复: 1

C语言培训系列免费教程第六课

[复制链接]

72

主题

0

回帖

360

牛毛

一级牛人

积分
360
发表于 2011-1-23 20:50:26 | 显示全部楼层 |阅读模式 来自 贵州省黔东南州凯里市
C语言培训系列免费教程第六课


c语言系列教程 第六课   循环语句实例以及简单逆向分析讲师: 一直很安静   
本节课知识点:1.goto...语句
             2.while 语句
             3.do while 语句
             4.for 语句.....            
goto...语句"""" 无条件跳转语句....
#include"stdio.h"
Void main()
{
   Int i, sum =0;
I = 1;
Loob:if(i<=100)
{
Sum = sum + i;
I++;
Goto loop;
}
Printf("%d\n",sum);
}

while 语句"""""""
#include"stdio.h"
void main()
{
        int i, sum =0;
        i = 1;
while (i<=100)   /*先判断后执行.*/
{
        sum = sum + i;
                 i++;
}
         printf("%d\n",sum);
}


3.do while 语句
#include"stdio.h"
void main()
{
        int i, sum =0;
        i = 1;
        do
        {
                sum = sum + i;
                i++;
        }
        while (i<=100);   /*先执行后判断.*/
    printf("%d\n",sum);
}
For  循环 语句.....
#include"stdio.h"
void main()
{
        int i, sum;
        
        for (i = 1,sum = 0;i<=100;i++)
        {
                sum = sum + i;
        }
   printf("%d\n",sum);
}

While  汇编代码......
1:    #include"stdio.h"
2:    void main()
3:    {
004****1010   push        ebp
004****1011   mov         ebp,esp
004****1013   sub         esp,48h
004****1016   push        ebx
004****1017   push        esi
004****1018   push        edi
004****1019   lea         edi,[ebp-48h]
00***01C   mov         ecx,12h
004****1021   mov         eax,0CCCCCCCCh
004****1026   rep stos    dword ptr [edi]
4:        int i, sum =0;
004****1028   mov         dword ptr [ebp-8],0
5:        i = 1;
00***02F   mov         dword ptr [ebp-4],1
6:    while (i<=100)   /*先判断后执行.*/
004****1036   cmp         dword ptr [ebp-4],64h
00***03A   jg          main+40h (004****1050)
7:    {
8:        sum = sum + i;
00***03C   mov         eax,dword ptr [ebp-8]
00***03F   add         eax,dword ptr [ebp-4]
004****1042   mov         dword ptr [ebp-8],eax
9:             i++;
004****1045   mov         ecx,dword ptr [ebp-4]
004****1048   add         ecx,1
00***04B   mov         dword ptr [ebp-4],ecx
10:   }
00***04E   jmp         main+26h (004****1036)
11:
12:        printf("%d\n",sum);
004****1050   mov         edx,dword ptr [ebp-8]
004****1053   push        edx
004****1054   push        offset string "%d\n" (00***01c)
004****1059   call        printf (004****1090)
00***05E   add         esp,8
13:   }
004****1061   pop         edi
004****1062   pop         esi
004****1063   pop         ebx
004****1064   add         esp,48h
004****1067   cmp         ebp,esp
004****1069   call        __chkesp (004****1110)
00***06E   mov         esp,ebp
004****1070   pop         ebp
004****1071   ret

Do..while::;

1:    #include"stdio.h"
2:    void main()
3:    {
004****1010   push        ebp
004****1011   mov         ebp,esp
004****1013   sub         esp,48h
004****1016   push        ebx
004****1017   push        esi
004****1018   push        edi
004****1019   lea         edi,[ebp-48h]
00***01C   mov         ecx,12h
004****1021   mov         eax,0CCCCCCCCh
004****1026   rep stos    dword ptr [edi]
4:        int i= 1, sum =0;
004****1028   mov         dword ptr [ebp-4],1
00***02F   mov         dword ptr [ebp-8],0
5:
6:        do
7:        {
8:            sum = sum + i;
004****1036   mov         eax,dword ptr [ebp-8]
004****1039   add         eax,dword ptr [ebp-4]
00***03C   mov         dword ptr [ebp-8],eax
9:            i++;
00***03F   mov         ecx,dword ptr [ebp-4]
004****1042   add         ecx,1
004****1045   mov         dword ptr [ebp-4],ecx
10:       }
11:       while (i<=100);   /*先执行后判断.*/
004****1048   cmp         dword ptr [ebp-4],64h
00***04C   jle         main+26h (004****1036)
12:       printf("%d\n",sum);
00***04E   mov         edx,dword ptr [ebp-8]
004****1051   push        edx
004****1052   push        offset string "%d\n" (00***01c)
004****1057   call        printf (004****1090)
00***05C   add         esp,8
13:   }
00***05F   pop         edi
004****1060   pop         esi
004****1061   pop         ebx
004****1062   add         esp,48h
004****1065   cmp         ebp,esp
004****1067   call        __chkesp (004****1110)
00***06C   mov         esp,ebp
00***06E   pop         ebp

For循环......
:    #include"stdio.h"
2:    void main()
3:    {
004****1010   push        ebp
004****1011   mov         ebp,esp
004****1013   sub         esp,48h
004****1016   push        ebx
004****1017   push        esi
004****1018   push        edi
004****1019   lea         edi,[ebp-48h]
00***01C   mov         ecx,12h
004****1021   mov         eax,0CCCCCCCCh
004****1026   rep stos    dword ptr [edi]
4:        int i, sum;
5:
6:        for (i = 1,sum = 0;i<=100;i++)
004****1028   mov         dword ptr [ebp-4],1
00***02F   mov         dword ptr [ebp-8],0
004****1036   jmp         main+31h (004****1041)
004****1038   mov         eax,dword ptr [ebp-4]
00***03B   add         eax,1
00***03E   mov         dword ptr [ebp-4],eax
004****1041   cmp         dword ptr [ebp-4],64h
004****1045   jg          main+42h (004****1052)
7:        {
8:            sum = sum + i;
004****1047   mov         ecx,dword ptr [ebp-8]
00***04A   add         ecx,dword ptr [ebp-4]
00***04D   mov         dword ptr [ebp-8],ecx
9:
10:       }
004****1050   jmp         main+28h (004****1038)
11:       printf("%d\n",sum);
004****1052   mov         edx,dword ptr [ebp-8]
004****1055   push        edx
004****1056   push        offset string "%d\n" (00***01c)
00***05B   call        printf (004****1090)
004****1060   add         esp,8
12:   }
004****1063   pop         edi
004****1064   pop         esi
004****1065   pop         ebx
004****1066   add         esp,48h
004****1069   cmp         ebp,esp
00***06B   call        __chkesp (004****1110)
004****1070   mov         esp,ebp
004****1072   pop         ebp
004****1073   ret

http://www.hackfans.com.cn/C6.zip

13

主题

37

回帖

81

牛毛

初生牛犊

积分
81
发表于 2011-1-23 21:09:17 | 显示全部楼层 来自 广东省深圳市南山区
故意让人不懂啊
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-26 01:31 , Processed in 0.289458 second(s), 38 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表