检测点11.2不懂啊。。谁教下
fishc里课后习题:mov al,80h
add al,80h以后
怎么会:CF OF SF ZF PF
1 1 0 1 1
CF进位我知道。但是1000 0000+1000 0000为什么会有溢出呢?倒数第二位不是都是0吗0000000+0000000这样算错吗?不懂
再是mov al,0fch
add al,5h
也就是
11111100+101
CF OF SF ZF PF
1 0 0 0 0
又怎么会没有溢出呢?我感觉有额
谁教教啊~~
二进制 1000 0000b等于 16进制 80H 因为最高位(第七位)为1 为有符号数 所以就等于-128 -128 + -128 = -256 已超出字节存储有符号数的范围( -128 ~ +127 ) 所以溢出0f=1
第二个 al = 0fch =--4D 5h =+ 5d 所以-4 + 5= 1 1没有超出字节有符号数的存储范围,所以of=0 小马过河 发表于 2012-1-20 11:25 static/image/common/back.gif
二进制 1000 0000b等于 16进制 80H 因为最高位(第七位)为1 为有符号数 所以就等于-128 ...
{:5_107:}为什么最高为为1就是有符号数呢?有无符号不是说看SF的值吗?
那凡是最高位为1就是有符号数又是负数。
最高位为0是无符号数为正数,这压根好像不对额。。
能将清楚点吗 本帖最后由 ever.g 于 2012-1-20 12:52 编辑
当你关心运算结果有无符号时,去看符号位,和有无溢出。。
不关心可以无视,内存中的数据存储方式是不会变的
关于溢出80h 换成10进制是-128?-128+-128 有进位 但是结果al中变成了0很明显当作有符号运算结果不对所以产生溢出
同理0100 0000+0100 0000 = 1000 0000 即64+64 = 128没有进位,但是结果当作有符号数就为-128了,结果明显是不对的
产生溢出! 所以异号相加 不会溢出,同号相加就要考虑溢出问题了,当然这是针对有符号运算的,你当作无符号就可以不考虑
415968430 发表于 2012-1-20 11:36 static/image/common/back.gif
为什么最高为为1就是有符号数呢?有无符号不是说看SF的值吗?
那凡是最高位为1就是有符号数又是 ...
你看 OF 时 所有数据都是有符号数你不看OF时 所有数据都为无符号数 小马过河 发表于 2012-1-20 12:36 static/image/common/back.gif
你看 OF 时 所有数据都是有符号数你不看OF时 所有数据都为无符号数
哦哦 {:5_109:}
页:
[1]