请考虑以下代码:
.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
答案 0 :(得分:3)
奇偶校验标志仅受结果的最低字节的影响。因此,对于奇偶校验的计算,您的值为零。
如果你想知道更宽值的奇偶校验,你可以将它的两半合并为止,直到得到8位结果,在最后的xor之后,奇偶校验标志将反映整个原始值的奇偶校验。
例如,在这种情况下,你可以这样做:
xor al, ah
然后奇偶校验标志将反映ax
的奇偶校验。
答案 1 :(得分:-2)
Į假设第一个数字仍被视为符号būt,因此它被忽略。我想也设置了溢出标志,这会使这个假设正确。