鱼C论坛

 找回密码
 立即注册
查看: 3056|回复: 6

怎么算都觉得不对

[复制链接]
发表于 2018-3-25 10:46:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
若al=76h,bl=9ch,当8086执行al-bl操作后,标志位of和cf应分别为?

答案给的是of=1,cf=1。

我自己算出来不对啊,我算出来of=0,cf=1.

求助详细过程!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-25 11:08:40 | 显示全部楼层
CF 就不说了吧,说下OF吧
OF:当运算的结果超出了这个范围,就产生了溢出,说明产生了符号位,计算不准确了。简单的来说就是算出来的这个数变成了一个有符号数,让结果不准确。76 - 9c = 118 - 156 = -38,十六进制是DA,无符号的话是218,但是现在是-38,如果该 OF = 0,那计算器会认为是 218,而实际要的是 -38,所以是 OF = 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-25 11:33:50 | 显示全部楼层
丶忘却的年少o 发表于 2018-3-25 11:08
CF 就不说了吧,说下OF吧
OF:当运算的结果超出了这个范围,就产生了溢出,说明产生了符号位,计算不准确 ...


76 - 9c = 118 - 156 = -38,没有异议,正因为如此,机器表示范围为-128~127, -38在此范围内。所以当时认为没有溢出

后面说,无符号的话是218,但是现在是-38,如果该 OF = 0,那计算器会认为是 218,而实际要的是 -38,所以是 OF = 1

这一段不是很懂, 感谢解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 11:37:04 | 显示全部楼层
自宅警備員 发表于 2018-3-25 11:33
76 - 9c = 118 - 156 = -38,没有异议,正因为如此,机器表示范围为-128~127, -38在此范围内。所以当 ...

如果我记得没错的话,范围是0—255,就是因为有标志位,才会有 0—255 和-128—127 这两种状态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-25 11:56:36 | 显示全部楼层
本帖最后由 自宅警備員 于 2018-3-25 11:57 编辑
丶忘却的年少o 发表于 2018-3-25 11:37
如果我记得没错的话,范围是0—255,就是因为有标志位,才会有 0—255 和-128—127 这两种状态。


书中原话是这么写的:

of:反映带符号(二进制补码表示)运算结果是否超过机器所能表示的数值范围的情况,对字节运算为-128~127,对字为-32768~+32767,若超过上诉范围,称为溢出,of置1




那个无符号的话是218,这个怎么算出来的呃?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 13:15:00 | 显示全部楼层
自宅警備員 发表于 2018-3-25 11:56
书中原话是这么写的:

of:反映带符号(二进制补码表示)运算结果是否超过机器所能表示的数值范围的 ...

那这么说的话  76 - 9c = 118 - (-100) = 218,结果还是溢出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-25 14:32:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表