ROR打开溢出标志

时间:2015-06-29 20:36:30

标签: assembly x86

我在程序集emu8086模拟器中有以下几行:

 mov al,00100000b  
 ror al,8

al等于0000 0001时,两个标记Carry&溢出被关闭, 但当al等于1000 0000时,两个标志都会打开。

进位标志正常 - 最后一位数字1在标志中,但为什么此操作也会打开溢出标志?

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:3)

来自Intel manual Vol 2B

  

OF标志仅针对1位旋转定义;在所有其他情况下都未定义(RCL和RCR指令除外)   only:零位旋转不执行任何操作,这会影响无标记)。对于左旋转,OF标志设置为异或   CF位(旋转之后)和结果的最高位。对于右旋转,OF标志设置为   结果的两个最重要的位的异或。

不确切地知道为什么ROR具有此行为可能此功能可用于计算奇偶校验位。