1. if语句的汇编代码
一个简单的if语句
image.png
main函数汇编
image.png image.png
2. while语句的汇编代码
image.pngimage.png
do while的
image.png
image.png
3. switch语句的汇编代码
3.1 switch代码case值连续的
写一段switch代码
image.png image.png
重新运行项目截图的下面,内存地址不一样,不要在意这些细节
image.png
br x8跳转的看这个图,上面的没有截全
image.png
3.2 switch代码case值不连续的
image.png这里只看关键的地方
image.png
image.png
3.3 case较大的时候
image.png跟if语句差不多了
image.png
3.4 switch总结
1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。
2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。
3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)
网友评论