了解CMP指令中的Partity标志

问题描述

我认为我不太了解eflags寄存器中的PF是什么。我做了两个比较以了解其工作原理:

 # a > b -- 0b01
 mov $4,%rax
 mov $3,%rbx
 cmp %rax,%rbx  # [ CF PF AF SF IF ] *PF* included

 # a > b -- 0b10
 mov $5,%rbx  # [ CF AF SF IF ]

 # a = b -- 0b00
 mov $5,%rax
 mov $5,%rbx  # [ PF ZF IF ] *PF* included

在第一个操作中,比较将产生10x01,在第二个操作中将产生20x10。为什么然后在第一个中设置奇偶校验标志,而不在第二个中设置奇偶校验标志,因为它们两个的一位都设置为1。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)