鱼C论坛

 找回密码
 立即注册
查看: 2539|回复: 3

学习中,卡在标志寄存器这里了,请老师们指点迷山哈~!~

[复制链接]
发表于 2011-11-25 11:36:43 | 显示全部楼层 |阅读模式

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

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

x
可以举个例说明一下,到底什么才是无符号数和有符号数!困扰在这两个东东上面了,脑袋一片浆糊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-25 11:57:28 | 显示全部楼层
比如8位二进制数,如果这8位都表示数值大小,那就是无符号数,如果用最高位的0或1表示符号的话,那就是有符号数,我们约定用0表示正数,用1表示负数。所以8位无符号二进制数表示的数值范围是0到255,8位有符号二进制数表示的范围是-128到+127.负数用补码表示,原码的符号位不变其余各位取反后再加一就得到了负数的补码,正数原码反码补码相同。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-25 12:21:15 | 显示全部楼层
本帖最后由 ever.g 于 2011-11-25 12:36 编辑

根据上面的
比如F6 表示有符号数就是十进制的-10,无符号数就是十进制的246

无论如何在内存中都是F6所代表的8位二进制数来表示的  
具体怎么用,看程序员怎么考虑的

比如做加法时F6+1 = F7   1.当作无符号运算结果为247  
2.有符号运算结果为F7的补码-9

但是内存中保存的结果只是F7所表示的8位二进制数,然后这个结果你怎么用 是自己的事了。考虑不考虑标志寄存器的符号位,进位溢出神马的,这些怎么利用就看你了


关于补码去看视频或者课本吧。。





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-25 14:01:19 | 显示全部楼层
把我理解的11.2答案贴出来一下!对于有符号数和无符号数通过几位的讲解,我就是这样理解地
sub al,al                无符号数,有符号数al=0
cf=0 of=0 sf=0 zf=1 pf=1
mov al,10H
cf=0 of=0 sf=0 zf=1 pf=1
add al,90H                无符号数al=a0H=160d 无借位。 有符号数al=16+(-112)=96 无溢出
cf=0 of=0 sf=1 zf=0 pf=1
mov al,80H
cf=0 of=0 sf=1 zf=0 pf=1
add al,80H        无符号数al=100H=256d=100000000H 有借位。有符号数al=-80-80=-160 有溢出
cf=1 of=1 sf=0 zf=1 pf=1
mov al,0fcH
cf=1 of=1 sf=0 zf=1 pf=1
add al,05H       无符号数al=101H=257d=100000001H 有借位。有符号数al=-4+5=-1 无溢出
cf=1 of=0 sf=0 zf=0 pf=0
mov al,7dH
cf=1 of=0 sf=0 zf=0 pf=0
add al 0bH      无符号数al=88H=136d=10001000H 无借位。有符号数al=88H=136d 有溢出
cf=0 of=0 sf=1 zf=0 pf=1
无符号数的范围是0-255,有符号数的范围是-128-127
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 19:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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