【发布时间】:2019-09-01 15:35:21
【问题描述】:
手册说明
OF 标志仅针对 1 位循环定义;在所有其他情况下它是未定义的(RCL 和 RCR 指令除外 仅:零位循环不执行任何操作,即不影响任何标志)
这也显示在下面的伪代码中
IF (COUNT & COUNTMASK) = 1
THEN OF ← MSB(DEST) XOR CF;
ELSE OF is undefined;
FI;
但是,在实践中尝试时会有所不同。 这是有问题的代码
mov rax, 0x4444444433332211
mov cl, 0x44
rol rax, cl
然而溢出标志似乎被设置了,
此行为并非特定于 0x44 或 cl 作为源,它会在任何非零时发生(前提是首先设置 OF 的原因)。
【问题讨论】: