| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 715 人关注过本帖
标题:关于标志位请教
取消只看楼主 加入收藏
dafubj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-28
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:1 
关于标志位请教
在互联网查询得到的信息如下:
1.如果两个同类型数据(同为无符号数或负数)相加,结果值的符号位与原数不同,则OF=1;
2.如果两给同类型数据(同为无符号数或负数)相加,结果值的符号位与原数同,则OF=0.

MOV    AX, 2340H
MOV    CX, 4
MUL    CX  
答案是:(AX)=8D00H,CF=OF=0,通过使用debug逐步调试,验证了该答案是正确的。

我的疑问是:
2340是整数,8D00符号位为1,为负数。按照最前面提到的说法,这时的OF=1,而非OF=0;
当然如果将8D00视为无符号数,是没有溢出的。

就该题而言,决定OF值的规则到底是什么呢?

搜索更多相关主题的帖子: 答案 数据 
2010-07-28 15:30
dafubj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-28
收藏
得分:0 
回复 2楼 okayyyy
通过近三天的思考,对OF 和CF标志位的理解总结如下,请各位鉴定:
1.对于加法:溢出只需要考虑符号相同的情形(符号位不同的情形自然不需要考虑)。若结果值的符号位和加数的不同,自然溢出(试想:正数+正数=负数,不合逻辑;负数+负数=整数,不合逻辑)。
2.对于减法:溢出只需要考虑符号不同的情形(符号位相同的情形自然必须考虑)。若结果值的符号位和减数相同,自然溢出(试想:负数-正数=正数,不合逻辑;正数-负数=负数,不合逻辑)。
2010-08-05 14:10
快速回复:关于标志位请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017198 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved