在Intel instruction set reference的第3-431页,提到了两个不同的说明:
7C cb JL rel8 Jump short if less (SF ≠ OF).
7C cb JNGE rel8 Jump short if not greater or equal (SF ≠ OF).
为同一条指令设两个名字背后的原因是什么?是否存在使用JL
或JNGE
?
答案 0 :(得分:5)
只是为了使代码更具可读性,以防其中一个或另一个更符合您的意图。正如您所引用的那样,机器代码是相同的,最终这就是处理器将执行的内容。因此,它不会知道您是使用JL
还是JNGE
。所有的关系都有其否定的名称。
还有其他重复项可以更好地说明可读性点,例如JE
和JZ
。您通常在比较后使用JE
,否则使用JZ
。同样,您有JB
和JC
。