美文网首页
arm64汇编篇-11循环while、for

arm64汇编篇-11循环while、for

作者: ClementGu | 来源:发表于2018-05-31 18:35 被阅读14次

    while循环

    1. 创建工程->main函数页面写入以下代码:
    void func(){
        int nSum = 0;
        int i = 0;
        while (i <= 100){
           nSum = nSum + 1;
            i++;
        }
    }
    

    2.真机编译将得出的mach-O文件放入ida64中解析获得以下结果:
    注:ida的操作及下载点击此处 https://www.jianshu.com/p/7f007bdd1108

    while循环汇编

    3.由上图可以看出while循环的执行代码是代码段不断重复执行满足条件后跳转(do while类似只是判断放在后面进行)。


    for循环

    1.创建工程->main函数页面写入以下代码:

    void func(){
        int nSum = 0;
        int i = 0;
        while (i <= 100){
           nSum = nSum + 1;
            i++;
        }
    }
    

    2.ida解析结果如下

    for循环汇编

    3.从上面代码可以看出for循环也是先进性比较判断然后根据结果进行循环。

    注:

    由上面两个例子可以看出在汇编层次for循环和while循环在汇编中运行代码逻辑和代码量是一致的所以在性能上看for循环和while循环是一样的。由此下一篇文章将着重介绍switch的性能和if的性能的区别。

    相关文章

      网友评论

          本文标题:arm64汇编篇-11循环while、for

          本文链接:https://www.haomeiwen.com/subject/digfsftx.html