Assembly 汇编语言中JP和JPE或JNP和JPO的区别

Assembly 汇编语言中JP和JPE或JNP和JPO的区别,assembly,x86,parity,Assembly,X86,Parity,这个问题是关于奇偶校验标志的。我无法理解JP和JPE或JNP和JPO之间的区别。它只是每个指令的另一个名称,还是有一些不同?对于给定的跳转指令(大小),它只能测试两个奇偶校验标志条件。正如您所猜测的,它们每个都有两个名称: 7B cb JNP rel8 Jump short if not parity (PF=0). 7A cb JP rel8 Jump short if parity (PF=1). 7A cb JPE rel8 Jump short if parity e

这个问题是关于奇偶校验标志的。我无法理解JP和JPE或JNP和JPO之间的区别。它只是每个指令的另一个名称,还是有一些不同?

对于给定的跳转指令(大小),它只能测试两个奇偶校验标志条件。正如您所猜测的,它们每个都有两个名称:

7B cb   JNP rel8  Jump short if not parity (PF=0).
7A cb   JP  rel8  Jump short if parity (PF=1).
7A cb   JPE rel8  Jump short if parity even (PF=1).
7B cb   JPO rel8  Jump short if parity odd (PF=0).
(c9x.me)


你可以看到
JNP
JPO
是相同的指令(
7B
),就像
JP
JPE
7A
)一样;除非在表格中,否则从未提及平价品种的跳跃。不确定为什么这个明显正确的答案被否决。非常感谢!你解决了我的问题。我无法理解为什么一条指令有两个名称。我了解到设置JZ和JE的原因是因为它对用户有不同的使用偏好或不同的含义。但JP和JPE没有理由被设定。“无论如何,谢谢你。”乔纳森说Reinhart@lovely:同一条指令有多个名称,以便于记法,并与8088的直系祖先和等古代CPU保持一致。@JackZhang原因相同。。。“JPE”读作“奇偶校验为偶数时跳转”,而“JP”读作“奇偶校验设置时跳转”。。。如果您不编写大量x86程序集,您可能会发现在低8位的结果具有偶数奇偶校验时,如果PF为1或0,则调用“JPE”比调用“JPE”更容易(同样,如果您希望硬件实现仅
xor
8位并将结果放入PF中,那么实际上您会猜错,PF=1表示偶数奇偶校验,因此还有额外的“1”被
xor
-ed插入其中)。因此在这方面,使用
JPE
更容易记住。如果你真的只想知道PF=1,
JP
。同样地,
JB
JC
JNAE
都是相同的指令,包含进位标志。