0

我想我不太了解PFeflags 寄存器中的内容。以下是我为了解其工作原理所做的两个比较:

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

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

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

在第一个操作中,比较将产生1or0x01并且在第二个操作中它将产生2or 0x10。那么为什么在第一个而不是第二个中设置奇偶校验标志,因为它们都有一个位设置为 1。

4

0 回答 0