循环语句
Tutorial: C与汇编
Category: C语言
Published: 2026-04-07 13:58:26
Views: 20
Likes: 0
Comments: 0
1. 循环语句
#include <stdio.h>
int main()
{
int j = 0;
int k = 0;
for (int i = 0; i < 5; i++)
{
printf("for 循环迭代: %d\n", i);
}
while (j < 5)
{
printf("while 循环迭代: %d\n", j);
j++;
}
do
{
printf("do...while 循环迭代: %d\n", k);
k++;
} while (k < 5);
return 0;
}
5: int j = 0;
004109A8 mov dword ptr [ebp-4],0
6: int k = 0;
004109AF mov dword ptr [ebp-8],0
7:
8: for (int i = 0; i < 5; i++)
004109B6 mov dword ptr [ebp-0Ch],0
004109BD jmp main+38h (004109c8)
004109BF mov eax,dword ptr [ebp-0Ch]
004109C2 add eax,1
004109C5 mov dword ptr [ebp-0Ch],eax
004109C8 cmp dword ptr [ebp-0Ch],5
004109CC jge main+51h (004109e1)
9: {
10: printf("for 循环迭代: %d\n", i);
004109CE mov ecx,dword ptr [ebp-0Ch]
004109D1 push ecx
004109D2 push offset string "for \xd1\xad\xbb\xb7\xb5\xfc\xb4\xfa: %d\n" (004270ec)
004109D7 call printf (00410910)
004109DC add esp,8
11: }
004109DF jmp main+2Fh (004109bf)
12:
13: while (j < 5)
004109E1 cmp dword ptr [ebp-4],5
004109E5 jge main+73h (00410a03)
14: {
15: printf("while 循环迭代: %d\n", j);
004109E7 mov edx,dword ptr [ebp-4]
004109EA push edx
004109EB push offset string "while \xd1\xad\xbb\xb7\xb5\xfc\xb4\xfa: %d\n" (004270d8)
004109F0 call printf (00410910)
004109F5 add esp,8
16: j++;
004109F8 mov eax,dword ptr [ebp-4]
004109FB add eax,1
004109FE mov dword ptr [ebp-4],eax
17: }
00410A01 jmp main+51h (004109e1)
18:
19: do
20: {
21: printf("do...while 循环迭代: %d\n", k);
00410A03 mov ecx,dword ptr [ebp-8]
00410A06 push ecx
00410A07 push offset string "do...while \xd1\xad\xbb\xb7\xb5\xfc\xb4\xfa: %d\n" (004270bc)
00410A0C call printf (00410910)
00410A11 add esp,8
22: k++;
00410A14 mov edx,dword ptr [ebp-8]
00410A17 add edx,1
00410A1A mov dword ptr [ebp-8],edx
23: } while (k < 5);
00410A1D cmp dword ptr [ebp-8],5
00410A21 jl main+73h (00410a03)
24:
25: return 0;
00410A23 xor eax,eax
26: }