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