回 帖 发 新 帖 刷新版面

主题:[讨论]16进制加法是怎么算的,我说的是用手算????

比如说,我看到一段程序,有一个偏移是200H,这个偏移处有一个标号“LAB1”,下面有一个转移指令,它的偏移是208H,就是转移到“LAB1”处,是一个短转移,得出来的偏移是,汇编出来的好像是“E8 F6”是E8还是什么别的我记不请了,但我想知道的是,这样算出来的偏移,并不是“LAB1”的200H,而是300H呀????这是怎么回事,算的方法是208H+2+F6。
但我看书上写的用这个F6还应该将位补全,这是怎么补,是不是我算出来的300H,是不是就是这里出了问题???请详细说说好吗??????谢谢!!!!

回复列表 (共3个回复)

沙发

这个F6将位补全,实际上就是把高位都补充为1(符号位扩展),所以应该是FFF6,因此,208h+2h+fff6h=10200h,舍弃最高的进位1,即200h。

板凳

那么如果最高位是"0"呢??是不是最高位补全的就是"0"了???对吧???

3 楼

是的

我来回复

您尚未登录,请登录后再回复。点此登录或注册