目录
一.前言
二.if
三.else
四.else if
一.前言
今天文章的主要内容是介绍C语言if语句if,else,else if以及它们的反汇编,废话不多说,下面直奔主题
二.if
今天文章的主要内容是介绍C语言if语句if,else,else if以及它们的反汇编,废话不多说,下面直奔主题
二.if
格式:
If(表达式)
{}
判断括号里的表达式是否成立,如果为0,说明条件不成立
如上图可以看出,是和0比较的,这里用的cmp,有时候也用test
用test优点:位与位运算,直接二进制操作比较方便 计算速度快
上面两图可以总结:算术运算:cmp test 跟0进行比较 为0不成立 不为0成立
如上图所示, 关系运算:If反汇编里面跳转的位置是反着来的,if里面的大于,反汇编里的跳转是小于等于.
三.else
格式:
If(表达式)
{}
else
{
}
如上图所示:else相当于jmp跳转 跳到if结束的位置,跳到if外面
只要有else里面就会插一个jmp指令
判断有没有else的方法(判断if还是if else的方法):
直接看if跳转位置的上方是否有jmp语句,如果有jmp,说明是if else,如果没有,则是if 语句
如何查看if else的范围?
直接看if的跳转位置,如果跳转位置的上方有jmp指令,那么jmp跳转位置的上方就是整个范围
如何查看if 的表示范围?
直接看if的跳转位置,如果跳转位置的上方没有jmp,那么它就是整个if的表示范围
四.else if
说明:否则如果,多重判断,如果if里面的条件满足 就不执行else if里面的语句了
如上图所示:
如果有判断条件上面还有一个jmp,说明是else if
如果只有判断条件,说明是if
如果只有jmp,说明是else语句
今天的文章就到这里了,如果有任何不明白的地方欢迎与我交流,我必定知无不言。这篇文章也花了一定的心血,喜欢的小伙伴可以点赞关注哦。感激不尽!


![[逆向|C语言]C语言if语句 if,else,else if ,通过反汇编理解 [逆向|C语言]C语言if语句 if,else,else if ,通过反汇编理解](http://www.mshxw.com/aiimages/31/976738.png)
