1

考虑以下代码:

.586
.model flat,stdcall
.data
.code
main PROC

mov ax,0
push ax
popf 
mov bx,7FFFh
add bx,1               //the value of bx is 8000h, but the parity flay is 1,why?
Ret
main endp
END main
4

2 回答 2

3

奇偶校验标志仅受结果的最低字节影响。所以对于平价的计算,你的价值是零。

如果你想知道一个更宽值的奇偶校验,你可以将它的两半异或在一起,直到你得到一个 8 位的结果,在最后的异或之后,奇偶校验标志将反映整个原始值的奇偶校验。

例如在这种情况下,您可以这样做:

xor al, ah

然后奇偶标志将反映 的奇偶性ax

于 2013-02-27T08:20:54.883 回答
-2

Į 假设第一个数字仍然被认为是符号 būt,因此它被忽略了。我想还设置了溢出标志,这将使这个假设正确。

于 2013-02-27T08:15:18.467 回答