chinfun 发表于 2013-3-29 11:13:22

为什么OF是OV呢?

mov al, 7DH
add al, 0BH

7D是有符号数0111 1101,B是有符号数0000 1011,有符号数相加是10001000,转换为10进制是-120,8位有符号数的范围是128~127,所以有符号相加是-120,应该在范围内,为什么还会溢出呢?

119400117 发表于 2013-3-29 14:06:00

二个正数相加变成负数了这样应该算是溢出吧

chinfun 发表于 2013-3-29 14:59:34

119400117 发表于 2013-3-29 14:06 static/image/common/back.gif
二个正数相加变成负数了这样应该算是溢出吧

在进行有符号数运算的时候,如结果超过了机器所能表示的范围称为溢出。所以应该不是你说的这样吧

119400117 发表于 2013-3-29 15:07:43

chinfun 发表于 2013-3-29 14:59 static/image/common/back.gif
在进行有符号数运算的时候,如结果超过了机器所能表示的范围称为溢出。所以应该不是你说的这样吧

用计算器算下7D+0B=136 这应该是超出了吧
至于转成二进制的可能要用到补码知识了那个不太懂

chinfun 发表于 2013-3-29 20:25:28

119400117 发表于 2013-3-29 15:07 static/image/common/back.gif
用计算器算下7D+0B=136 这应该是超出了吧
至于转成二进制的可能要用到补码知识了那个不太懂

我今天老糊涂了:lol
页: [1]
查看完整版本: 为什么OF是OV呢?