Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
执行以下两条指令后:
MOV BX, 0FD51H DEC BX
我得到奇偶校验标志 = 1(表示偶数个)
但是,递减值的二进制表示是:
1111 1101 0101 0000
它有 9 个(即奇数个)。
此外,NEG BX在此之后执行会导致 PF = 0。但是,2 的补码是:
NEG BX
0000 0010 1011 0000有偶数个。所以我希望PF = 1。
0000 0010 1011 0000
来自英特尔的手册(第 3.4.3.1 节状态标志):
奇偶校验标志 — 如果结果的最低有效字节包含偶数个 1 位,则设置;否则清除。
之后的最低有效字节DEC BX是50h(即1010000b),它有偶数个1。所以你会得到PF = 1。
DEC BX
同样,在 之后NEG,最低有效字节是 B0h (10110000b),它有奇数个 1。所以你得到PF = 0。
NEG