X86 控制流操作中的 BitWiseXorNor 是什么?

lll*_*lll 3 x86 assembly control-flow

维基

test arg1, arg2
Run Code Online (Sandbox Code Playgroud)

我可以看到标志是基于这些改变的:

  1. SF <- MostSignificantBit(Temp)
  2. 如果温度 == 0 ZF <- 1 否则 ZF <- 0
  3. PF <- BitWiseXorNor(Temp[Max-1:0])
  4. CF <- 0
  5. OF <- 0

AF 未定义

所以我的问题是:

什么是BitWiseXorNor?什么是最大

Jas*_*son 5

PF 是一个奇偶校验标志,表示低字节中的位奇偶校验。因此,如果生成的位数是偶数,则设置它。如果位数是奇数,则不会设置。

维基文字有点混乱,但从BitWiseXorNor逻辑上看,这个函数看起来像……

bool bwxnor(bool b0, bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7) {

    return ~(((((((b0 ^ b1) ^ b2) ^ b3) ^ b4) ^ b5) ^ b6) ^ b7)
}
Run Code Online (Sandbox Code Playgroud)

另一种思考 PF 的方式是1 - (sum(temp[0:7]) % 2).