|
发表于 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 |
|