Brave_heart 发表于 2012-1-20 12:43:19

PF标志的一个问题?

书上说PF标志位是,奇偶标志位,记录相关指令执行后,其结果的所以bit位中1的个数是否为偶数。如果1的个数为偶数,PF=1,如果为奇数,那么PF=0.
比如,指令
mov al,1
addal,10
执行后的结果为00001011B,其中有3个1,则PF=0

我再举一个例子
比如
subal,al
mov al,1
先执行sub al,al ,al=00000000,则PF=1,再执行mov al,1之后,其结果为al=00000001,其中有1个1,则PF应该等于0,但书上的答却是PF=1,不清楚这是什么原因,帮忙解答一下,谢谢。

小马过河 发表于 2012-1-20 13:02:38

MOV 传送指令 不影响标志位 你应该看上面的 减法指令subal,al

ever.g 发表于 2012-1-20 13:06:30

同上。。传送指令不影响标志位

Brave_heart 发表于 2012-1-20 13:19:30

我知道,书上是说mov不会改变标志寄存器,但是总觉得,这和PF的定义相矛盾(PF标志位是,奇偶标志位,记录相关指令执行后,其结果的所以bit位中1的个数是否为偶数),因为,mov al,1 也会产生一个结果al=00000001

Seely 发表于 2012-1-20 17:11:59

Brave_heart 发表于 2012-1-20 13:19 static/image/common/back.gif
我知道,书上是说mov不会改变标志寄存器,但是总觉得,这和PF的定义相矛盾(PF标志位是,奇偶标志位,记录相 ...

你这有点较真,mov不改变标志寄存器,PF无视mov指令。它无视了都,还管你有几个0几个1啊。

bafengao 发表于 2012-1-20 18:18:17

学习谢谢了
页: [1]
查看完整版本: PF标志的一个问题?