arm64汇编篇-11循环while、for
2018-05-31 本文已影响14人
ClementGu
while循环
- 创建工程->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
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的性能的区别。