反汇编:循环语句各个版本对比

4.6.循环语句各版本对比

代码及相关分析来自于《加密与解密》

时间2021年0311

 

1.do循环

【示例代码1】

int _tmain(int argc, _TCHAR* argv[]) {
    int nCount = 0;
    do
    {
        printf("%d\r\n", nCount);
        nCount++;
    } while (nCount < argc);

    return 0;
}

 

image.png

 

x64-debug版本:

image.png

x64-release版本:


image.png

 

x86-debug版本:

image.png

 

x86-release版本:


image.png

 

2.while循环

【示例代码2】

int _tmain(int argc, _TCHAR* argv[]) {
    int nCount = 0;
    while (nCount < argc)
    {
        printf("%d\r\n", nCount);
        nCount++;
    }
    return 0;
}

 

分析:

image.png

 

x64-debug版本:

image.png

 

x64-release版本:

image.png

 

x86-debug版本:

image.png

 

x86-release版本:

image.png

3.for循环

【示例代码3】

int _tmain(int argc, _TCHAR* argv[]) {
    for (int nCount = 0; nCount < argc; nCount++)
    {
        printf("%d\r\n", nCount);
    }
    return 0;
}

 

分析:

 

 

 

x64-debug版本:

image.png

 

x64-release版本:

image.png

 

x86-debug版本:(与x64类似,具体看前几张图片)

image.png

 

x86-release版本:(与x64类似,具体看前几张图片)

image.png

 

 

 

posted @ 2021-03-11 17:21  Xor0ne  阅读(68)  评论(0编辑  收藏  举报