学习中,卡在标志寄存器这里了,请老师们指点迷山哈~!~
可以举个例说明一下,到底什么才是无符号数和有符号数!困扰在这两个东东上面了,脑袋一片浆糊! 比如8位二进制数,如果这8位都表示数值大小,那就是无符号数,如果用最高位的0或1表示符号的话,那就是有符号数,我们约定用0表示正数,用1表示负数。所以8位无符号二进制数表示的数值范围是0到255,8位有符号二进制数表示的范围是-128到+127.负数用补码表示,原码的符号位不变其余各位取反后再加一就得到了负数的补码,正数原码反码补码相同。 本帖最后由 ever.g 于 2011-11-25 12:36 编辑根据上面的
比如F6 表示有符号数就是十进制的-10,无符号数就是十进制的246
无论如何在内存中都是F6所代表的8位二进制数来表示的
具体怎么用,看程序员怎么考虑的
比如做加法时F6+1 = F7 1.当作无符号运算结果为247
2.有符号运算结果为F7的补码-9
但是内存中保存的结果只是F7所表示的8位二进制数,然后这个结果你怎么用 是自己的事了。考虑不考虑标志寄存器的符号位,进位溢出神马的,这些怎么利用就看你了
关于补码去看视频或者课本吧。。
把我理解的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
页:
[1]