4.2 关系运算和逻辑运算
关系运算用于判断两者之间的关系,如等于、不等于、大于等于、小于等于、大于和小于,对应的符号分别为“==”、“!=”、“>=”、“<=”、“>”、“<”。关系运算的作用是比较关系运算符左右两边的操作数的值,得出一个判断结果:真或假。
逻辑运算用于判定两个逻辑值之间的依赖关系,如或、与、非,对应的符号有“||”、“&&”、“!”。逻辑运算也是可以组合的,执行顺序和关系运算相同。
(1)或运算:比较运算符||左右的语句的结果,如果有一个值为真,则返回真值;如果都为假,则返回假值。
(2)与运算:比较运算符&&左右的语句的结果,如果有一个值为假,则返回假值;如果都为真值,则返回真值。
(3)非运算:改变运算符!后面的语句的真假结果,如果该语句的结果为真值,则返回假值;如果为假值,则返回真值。
4.2.1 关系运算和条件跳转的对应
在VC++6.0中,可以利用各种类型的跳转来实现两者间的关系比较,根据比较结果所影响到的标记位来选择对应的条件跳转指令。如何选择条件跳转指令,需要根据两个进行比较的数值所使用到的关系运算,不同的关系运算对应的条件跳转指令也不相同。各种关系对应的条件跳转指令如表4-1所示。
在通常情况下,这些条件跳转指令都与CMP和TEST匹配出现,但条件跳转指令检查的是标记位。因此,在有修改标记位的代码处,也可以根据需要使用条件跳转指令来修改程序流程。