鱼C论坛

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

关于标志寄存器的问题

[复制链接]
发表于 2013-2-3 20:44:01 | 显示全部楼层 |阅读模式

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

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

x
add al,90h  al=10h

执行后   结果为A0H SF=1为什么?

A0H二进制:10100000 补码:1011111

符号位为0 是正数阿 为什么SF会=1

在线等大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-3 21:00:47 | 显示全部楼层
A0H最高位难道不是1吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-4 13:45:33 | 显示全部楼层
本帖最后由 刘金伟 于 2013-2-4 13:47 编辑

这是对标志寄存器理解上有问题。小甲鱼在视频中讲过,CPU很笨,他不知道一个内存中的内容对我们用户来说到底是指令还是数据,这完全取决于我们想怎么用。例如这道题里,CPU已经考虑了两种情况,一种吧A0当作补码(即一个负数,SF=1),另一种就是正常的二进制数(一个正数,这时就是把它当作无符号数,那要看的就是CF进位标志)。
简言之,最后的结果是什么,取决与你。你把它看作有符号数,他就是一个补码表示,那么SF=1。你把它看作无符号数就不需要管SF了。
CPU只是提供了所有可能,我们只需要按需索取即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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