+ -
当前位置:首页 → 问答吧 → mov al,-100;mov ah,88;sub al,ah;结果为al=44h?????

mov al,-100;mov ah,88;sub al,ah;结果为al=44h?????

时间:2011-03-06

来源:互联网

这个在debug中怎么调试的啦
为什么al=44h,-188舍弃一个进位不是-60吗
指教??

作者: zhangleiyigeren   发布时间: 2011-03-06

把-100放在al中,相当于+156(=10011100B),减去88得到78=44H.

作者: shzhfu   发布时间: 2011-03-06

引用 1 楼 shzhfu 的回复:
把-100放在al中,相当于+156(=10011100B),减去88得到78=44H.

那个得到68,是44h.
我就是再问下,在王爽的书上,说道of时。如果进行有符号的运算,发生溢出
是不是运算结果就不算正确 了
可是怎样防止溢出呢

作者: zhangleiyigeren   发布时间: 2011-03-06

有符号数运算产生OF(OF=1)时,结果不是两个数实际的差。

严格地说溢出是无法防止的。对于实际问题,可以通过扩位防止。比如问题中增减的结果几乎总在-128~+127之间,用8位完成运算就够了,但为了防止溢出,可改用16位运算。

作者: shzhfu   发布时间: 2011-03-06