do while生成的汇编代码
do while汇编还原成C++代码
一、 do while成生的汇编代码
// int i=0;
// do
// {
// i++;
// } while (i<=10);
// return 0;
//00401003 |. 51 PUSH ECX ; int i;
//00401004 |. C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0 ; i=0;
//0040100B |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4] ; eax=i;
//0040100E |. 83C0 01 |ADD EAX,1 ; eax++
//00401011 |. 8945 FC |MOV DWORD PTR SS:[EBP-4],EAX ; i++;
//00401014 |. 837D FC 0A |CMP DWORD PTR SS:[EBP-4],0A ; i<=10
//00401018 |.^ 7E F1 \JLE SHORT dowhile.0040100B
//int j=10,i=0;
//do
//{
// i++;
// printf("do while \n");
//} while (i<j);;
//printf("for begin\n");
//for (i=0;i<=j;i++)
//{
// printf("do for");
//}
二、 do while汇编还原成C++代码
int a=1;
do
{
a++;
} while (a<=10);
printf("begin for");
int b=1;
for (;b<=10;b++)
{
}
printf("end for");
知识点:
while循环分析
while循环与for循环
一、while循环生成的汇编代码
while(条件)
{
}
二、while循环转换成等价for循环
int i=0;
while(i<20)
{
i++;
}
printf("for begin");
与上边的while语句等价
int j=0;
for (;j<20;)
{
j++;
}