为什么x86有冗余的JNGE指令?

时间:2014-06-04 15:24:47

标签: assembly x86 history

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).

为同一条指令设两个名字背后的原因是什么?是否存在使用JLJNGE

的重要事例

1 个答案:

答案 0 :(得分:5)

只是为了使代码更具可读性,以防其中一个或另一个更符合您的意图。正如您所引用的那样,机器代码是相同的,最终这就是处理器将执行的内容。因此,它不会知道您是使用JL还是JNGE。所有的关系都有其否定的名称。

还有其他重复项可以更好地说明可读性点,例如JEJZ。您通常在比较后使用JE,否则使用JZ。同样,您有JBJC