OF标志(overflow flag)

flag的第11位,溢出标志位
记录有符号数运算的结果是否溢出
如果溢出 OF = 1 如果没有 OF = 0


对于有符号数

8位有符号数据范围为 -128 ~ 127
16位有符号数据范围为 -32768 ~ 32767
因为最高有效位在第7位 所以都少了2倍


mov al,98
add al,99

在这里 CF = 0 OF = 1
为什么呢 add命令执行时包括两个含义 无符号数运算和有符号数运算

  • 有符号运算时 98+99发生溢出 OF = 1 (超过8位的最大值127了)
  • 无符号运算时 98+99未发生进位 CF = 0 (98+99 = 62h+63h = c5h)

mov al,0F0h
add al,88h

在这里 CF = 1 OF = 1

  • 有符号运算时 0fh + 88h = 178h =376 溢出
  • 无符号运算时 0fh + 88h = 178h 进位

这里可以看出 CF 和 OF 的进位和溢出 是分别表示进位和溢出的 他们之间没有什么PY关系

你可能感兴趣的:(OF标志(overflow flag))