arm64汇编篇-11循环while、for

2018-05-31  本文已影响14人  ClementGu

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的性能的区别。

上一篇下一篇

猜你喜欢

热点阅读