assembly ROR打开溢出标志

gupuwyp2  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(120)

我在emu 8086模拟器中有以下代码行:

mov al,00100000b  
 ror al,8

al等于0000 0001时,进位和溢出这两个标志被关闭,但是当al等于1000 0000时,这两个标志被打开。
进位标志是正确的-最后一个数字1在标志中,但为什么此操作也打开溢出标志?
感谢您的帮助!!!

holgip5t

holgip5t1#

Intel manual Vol 2B开始
OF标志仅为1位循环定义;在所有其它情况下,它是未定义的(仅RCL和RCR指令除外:0位循环移位不执行任何操作,即不影响任何标志).对于左循环移位,OF标志设置为CF位(循环移位后)与结果得最高有效位得“异或.”对于右循环移位,OF标志设置为结果得两个最高有效位得“异或.”
不确切地知道为什么ROR会有这种行为,也许这个特性可能被用来计算奇偶校验位。

相关问题