关于有符号数加法溢出问题!
mov al,0F0Haddal,88H
课本上说 add 指令 执行后:CF=1,OF=1。对于无符号数运算,0F0H+88H有进位,CF=1,对于有符号数运算,0F0H+88H发生溢出,OF=1
mov al,0F0H
addal,78H
课本上说 add 指令 执行后:CF=1,OF=0。对于无符号数运算,0F0H+78H有进位,CF=1,对于有符号数运算,0F0H+88H发生溢出,OF=0
第一个和数是120,第二个和数是104 都没有超过127为什么说OF=1 ????
嘿嘿,我告诉一个窍门,书上太罗嗦了,看了容易晕。进位我就不说了,容易懂,就说溢出。
加法溢出:两个正数相加,如果符号位改变了,表示溢出了。两个负数相加,符号位改变了,表示溢出了。
减法溢出:正数减负数,符号位改变,表示溢出了。负数减正数,符号位改变了,表示溢出了。
其他,正数负数相加,无论符号位怎么变都不会溢出。{:5_108:}我讲的简单吧。 很抱歉我这么晚才来回帖,麻烦再看看我的回答!
mov al,0F0H
addal,88H
我算的结果:
1111 0000
+ 1000 1000
______________
10111 1000
证明进位和溢出,证明你说的有点道理,接着我又看了下一条!
mov al,0F0H
addal,78H
我算的结果:
1111 0000
+ 0111 1000
10110 1000
符号位改变了按你说的方法证明了它溢出了,但是课本上说没有溢出=0 !!!!!这到底是? 请仔细看,正数和负数相加,都不会溢出,我上面已经讲了。 不好意思,没认真看答案!
1111 0000
+ 0111 1000
——————————
0110 1000
那么这题运算结果是0110 1000吗?
你上面没有说明两个正数相减 会怎么样 两个负数相减又会怎么样。 你上面没有说明两个正数相减 会怎么样 两个负数相减又会怎么样。 两个正数相减。。也是属于一个正数一个负数。。 前面说了有两种!
减法溢出:正数减负数,符号位改变,表示溢出了。负数减正数,符号位改变了,表示溢出了。
其他,正数负数相加,无论符号位怎么变都不会溢出。
你说两个正数相减。。也是属于一个正数一个负数。。 我就不知道意思了! {:5_100:}小熊猫,你得补下初中数学了.
正数相减+a - +b = +a + -b
负数相减-a - -b = -a + b :L 是真的要找老师了 呵呵!有兴趣当我的数学老师和语文老师吗? 月收入XX00
页:
[1]