iOS逆向004 循环&选择

cmp(Compare)比较指令

CMP 把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。
   一般CMP做完判断后会进行跳转,后面通常会跟上B指令!

1、BL 标号:跳转到标号处执行
2、B.GT 标号:比较结果是大于(greater than),执行标号,否则不跳转
3、B.GE 标号:比较结果是大于等于(greater than or equal to),执行标号,否则不跳转
4、B.EQ 标号:比较结果是等于,执行标号,否则不跳转
5、B.HI 标号:比较结果是无符号大于,执行标号,否则不跳转

Switch

1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。
2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。
3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,844评论 8 114
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,658评论 18 399
  • iOS逆向工程之Hopper中的ARM指令 一、Hopper中的ARM指令 ARM处理器就不多说了,ARM处理器因...
    零度_不结冰阅读 3,935评论 0 4
  • 领导和谎言到底是一种怎样的关系呢?是因为靠谎言当上了领导,还是因为当上了领导,就变得满足谎言? Z是某单位市场部领...
    文艺复兴阅读 3,233评论 0 3
  • 好久不见 L O V E Miss you 听见花开 不可能原谅一直说谎的人 例如你 秋风见凉 如果你喜欢他 如果...
    多肉变瘦了阅读 2,286评论 0 1

友情链接更多精彩内容