如果在 8 位寄存器中进行以下算术运算,进位标志 (CF)、溢出标志 (OF)、符号标志 (SF) 和零标志 (ZF) 将被设置为什么?
0xFE + 0xFB
- CF=1,OF=0,SF=1,ZF=0
- CF=1,OF=1,SF=0,ZF=0
- CF=1,OF=0,SF=1,ZF=1
- CF=1,OF=1,SF=1,ZF=0
- 以上都不是。
谢谢
来自 William Stallings 的练习题 - 计算机组织和架构。
CF = 1
因为有溢出(无符号结果是 0x1F9 不适合 8 位)
OF = 0
因为我们加了2个负数,结果也是负数
SF = 1
因为结果是否定的(结果的第 7 位被设置)
ZF = 0
因为结果不为零
所以答案是 1。另见关于程序集 CF(Carry) 和 OF(Overflow) 标志