进位cf和溢出of迷惑

zwlstc 2017-09-10 02:00:02
比如两个很大的负数相加 是不是 cf 1 of1?

相加指令没有符号之分 那这条指令怎么知道要不要设置of?
比如8位字节 7f和7f相加 超过了有符号最大值 但是没进位 电脑通过什么知道需要设置of?
还有cmp也是
...全文
1321 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckc 2017-09-12
  • 打赏
  • 举报
回复
引用 1 楼 zwlstc 的回复:
我知道了 是不是永远当他是有符号的 然后设置溢出 这个分可以给自己吗 试试看
没错,是这个思路,有符号的和无符号的使用不同的标志位
zara 2017-09-11
  • 打赏
  • 举报
回复
实现方法和数值计算结果是不能混同的。1-2 是要借位,所以 CF=1;1+(-2)则不会进位或借位,所以 CF=0
zara 2017-09-11
  • 打赏
  • 举报
回复
是不知道,也不需要知道,所以有 CF 和 OF 两个标记位让你看着办
zwlstc 2017-09-11
  • 打赏
  • 举报
回复
我现在基本得出这样的结论..就是不知道对不对 减法指令的时候 把两个数最高位外面多加一个0(我看到过虚拟位的说法 想想也是肯定有这个..) 然后对第二个数求补 然后两数相加 多出来的位数为1 cf就等于1
引用 4 楼 zara 的回复:
实现方法和数值计算结果是不能混同的。1-2 是要借位,所以 CF=1;1+(-2)则不会进位或借位,所以 CF=0
兄弟 汇编难道不是只看指令吗? 我就是一条 0001-0010的指令 计算机知道有符号无符号? cf肯定是一样的啊
zwlstc 2017-09-10
  • 打赏
  • 举报
回复
不过 进位到底是什么意思 我好想又不懂了。。。 书上说 无符号a和b a-b<0 必定cf=1 但是比如现在 如果a=1 b=2 0001 + 1110 =1111 我的理解 没有从4位到5位就不是进位 是这样吗?那为什么会cf=1? 并且和前一个指令是什么有关系吗 前一个指令如果是加的话 是不是这两个数字相加就不会进位? 还是纯粹从最后两个位串相加直接判断 cf和of? 到底什么情况下会设置进位呢
zwlstc 2017-09-10
  • 打赏
  • 举报
回复
是不是应该再人性化一点 自问自答可以收回分数。。。
zwlstc 2017-09-10
  • 打赏
  • 举报
回复
我知道了 是不是永远当他是有符号的 然后设置溢出 这个分可以给自己吗 试试看

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧