Assembly 为什么奇偶校验标志为1,而奇数为1

Assembly 为什么奇偶校验标志为1,而奇数为1,assembly,x86-16,emu8086,eflags,Assembly,X86 16,Emu8086,Eflags,执行以下两条指令后: MOV BX, 0FD51H DEC BX 我得到奇偶校验标志=1,表示偶数个 但是,递减值的二进制表示为: 11111101010000 它有9个,即奇数个 此外,在此之后执行NEG BX将导致PF=0。然而,2的补充是: 0000 0010 1011 0000具有偶数个。因此,我希望PF=1。来自英特尔手册第3.4.3.1节状态标志: 奇偶校验标志-如果结果的最低有效字节包含偶数个1位,则

执行以下两条指令后:

MOV BX, 0FD51H                                        
DEC BX
我得到奇偶校验标志=1,表示偶数个

但是,递减值的二进制表示为:

11111101010000

它有9个,即奇数个

此外,在此之后执行NEG BX将导致PF=0。然而,2的补充是:


0000 0010 1011 0000具有偶数个。因此,我希望PF=1。

来自英特尔手册第3.4.3.1节状态标志:

奇偶校验标志-如果结果的最低有效字节包含偶数个1位,则设置奇偶校验标志; 否则的话

DEC BX之后的最低有效字节是50h,即1010000b,它有偶数个1。所以你会得到PF=1


类似地,在NEG之后,最低有效字节是B0h 10110000b,它有奇数个1。因此,您可以从“英特尔手册”第3.4.3.1节“状态标志”中获得PF=0.

奇偶校验标志-如果结果的最低有效字节包含偶数个1位,则设置奇偶校验标志; 否则的话

DEC BX之后的最低有效字节是50h,即1010000b,它有偶数个1。所以你会得到PF=1

类似地,在NEG之后,最低有效字节是B0h 10110000b,它有奇数个1。所以你得到PF=0