注册 登录
编程论坛 汇编论坛

[求助]汇编中的16进制符号问题

llxf 发布于 2007-10-19 23:10, 1694 次点击
在学习汇编的过程中发现书中有这样一个例子,怎么想都不明白,特向各位请教:
(ah)=22H,(bh)=0A0H; 则(ah)-(bh)=34-(-96)=82H
其中22H转为十进制是34,-96是怎么来的,不明白?
还有下面的一个例子,也是书上的:
mov ah,0A0H
mov bh,0cBH
cmp ah,bh
其中(ah)-(bh)=160-(-53)=213
这次两个都不知道是怎么来的?
更郁闷的是0A0H在上面是(-96),现在变为160,这究竟是怎么转换的,希望有人能告诉我,感激不禁!
4 回复
#2
llxf2007-10-20 22:13

怎么没有人回啊?
太郁闷了!
高手帮帮忙啊!

#3
zklhp2007-10-21 15:50
和补码有关

建议用windows里的计算器实验一下 。。。 应该有吧

0a0h取反加1等于几?

看有关章节 结合计算器
#4
gifty2007-10-27 16:30
第一个是有符号数,0AH就是10100000是个负数,负数是用补码表示的,所以原码是11100000(第一位是符号位)就是-96拉,第二个0AH是无符号数,所以就是160拉
#5
llxf2007-10-28 08:44
回复:(gifty)第一个是有符号数,0AH就是1010...
谢谢你的帮忙,现在又有一个问题就是 如何判断一个数是无符号数还是有符号数呢,或者说是在什么情况下将其作为有符号数,什么情况下将其作为无符号数呢,还有你说的第二个A0H是作为无符号数,那么无符号数可以和有符号数能够在一起运算么?麻烦你帮人就帮到底吧!谢谢!

[此贴子已经被作者于2007-10-28 8:48:38编辑过]


1