鱼C论坛

 找回密码
 立即注册
查看: 2837|回复: 2

关于进位有符号数运算问题

[复制链接]
发表于 2013-7-7 21:04:12 | 显示全部楼层 |阅读模式

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

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

x
两个数相减,00000001-00000010  就是1-2,这样的两个数在计算机里做运算,,计算机是不知道我会把这两个数是当成有符号还是无符号的吧??那进行运算的时候会去CF借位来运算吗??这真正运算的结果是否是11111111??11111111这个如果是用补码表示的话就是表示-1,,那跟有去CF借位来算结果不是一样的吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-8 13:13:14 | 显示全部楼层
楼主的问题略显混乱。一下是我的一点见解:
1、寄存器在加减的时候应该不会像CF借位,因为从来都是运算结果影响标志寄存器,而不是标志寄存器参与运算。
2、楼主应当考虑的是SF(Sign Flag)符号标志位,正的话为0
     CF(Carry Flag)是进位标志位,用以查看两者相加的时候是否进位
3、CPU在运算的时候将减法当成加上负数,正负数换算成补码的形式。正数形式不变 负数反码加一(甲鱼老师有一个专门讲补码的,建议看一下。http://blog.fishc.com/442.html)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-8 17:00:26 | 显示全部楼层
楼上说的没错。
00000001-00000010寄存器中结果是补码 11111111  ,CF,SF被置为1
sub 影响CF,但CF不会参与运算。
sbb  带借位的减法,CF参与运算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 09:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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