
1. if语句的汇编代码
一个简单的if语句

main函数汇编


2. while语句的汇编代码


do while的


3. switch语句的汇编代码
3.1 switch代码case值连续的
写一段switch代码


重新运行项目截图的下面,内存地址不一样,不要在意这些细节

br x8跳转的看这个图,上面的没有截全

3.2 switch代码case值不连续的

这里只看关键的地方


3.3 case较大的时候

跟if语句差不多了

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