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

[求助]补码和16进制的混合问题

datou 发布于 2006-07-16 01:46, 1082 次点击
假期初学汇编,刚把有符号数和无符号数搞懂点,就又遇到麻烦了,请看一下教材上的一段:
(讨论是否在 cmp 对象1,对象2 执行后,SF=1就说明对象1<对象2 时,所举的一个例子)

(ah)=22h, (bh)=0a0h,则(ah)-(bh)=34-(-96)=82h,82h是-126的补码,此时SF=1但34>-96.

22h 34
0a0h -96
82h -126

问题:1),(bh)=0a0h怎么变到后面的-96(负号如何决定,96怎么计算)?
2),教材上很少涉及十六进制的补码,哪位大侠能否通过1)的例子稍微总结指点一下
在此谢过先!!

[此贴子已经被作者于2006-7-16 1:51:10编辑过]

3 回复
#2
datou2006-07-16 19:45

没人帮我回答一下吗??

#3
zhangenter2006-07-17 13:32
正负号看最高位
22h转二进制00100010,最高为0,取原码,十进制就是34
0a0h二进制的10100000,最高位为1,取补码,01100000,十进制就是96
82h二进制的10000010,最高位为1,取补码,01111110,十进制就是126
#4
yhfghj2006-07-25 22:02

补码就是把十进制的数或十六进制的负数取绝对值后转化成二进制,然后按位取反再加一。
不知道你问的是关于这个不。

1