课件制作 发表于 2011-9-20 20:46:14

进位 和 溢出

汇编11.2题目中有这么一段:

             mov al,0fch
             add al,05h

执行后      of=0,      为什么of还是0?

这个执行后应该有进位   和   溢出   的,为什么只有进位,没有溢出呢?

file:///E:/az/qqaz/Users/653650313/Image/@I1CFUZVSD0ZGR9~AUHCZ%S.jpg

课件制作 发表于 2011-9-20 20:49:46

RE: 进位 和 溢出


为什么呢?想不明白?

tsembrace 发表于 2011-9-20 22:18:37

首先得理解“溢出”的含义,溢出针对的是有符号数。
对8位寄存器al来说,其表示的有符号数的范围是-128~127.其超过这个范围时才表示溢出。
al=0fcH表示的有符号数为-3.(不明白的话就去复习下补码)
add al,05h 后al=2,在-128~127范围内,没有溢出。
-----------------------------
ps:其实这里也很容易判断了,al初值为0fcH,表示的是负数(有符号数),add al,05h;对于有符号数而言,负数加上正数永远不会溢出的。

binboys 发表于 2011-9-21 03:08:06

不明白:dizzy:

课件制作 发表于 2011-9-21 10:20:21

tsembrace 发表于 2011-9-20 22:18 static/image/common/back.gif
首先得理解“溢出”的含义,溢出针对的是有符号数。
对8位寄存器al来说,其表示的有符号数的范围是-128~12 ...

谢谢您         

topcookie 发表于 2011-9-24 01:07:16

两正数相加结果为负则溢出,计算机是用补码运算的,也就是计算机里所有的运算都是转为加法运算
页: [1]
查看完整版本: 进位 和 溢出