十六进制 相加 的疑问
本帖最后由 汇编不会编 于 2012-12-12 10:17 编辑已解决谢谢所有回答者,有你们进步更快!
-------------------------------------------------
提问问题:
我正在做检测题遇到了十六进制与十六进制的相加困惑!
mov ax,62627 AX=F4A3
mov ah,31H AX=31A3
mov al,23H AX=3123
add ax,ax AX=6246
mov bx,826CH BX=826C
mov cx,ax CX=6246
mov ax,bx AX=826C
add ax,bx AX= 卡在这里了,我很笨的。。
mov al,bh AX=
mov ah,bl AX=
add ah,ah AX=
add al,6 AX=
add al,al AX=
mov ax,cx AX=
不知道怎么弄了,借助计算器的话一下子算出来了,但是我想手动去算结果,这样能彻底弄明白转换。
麻烦各位前辈不惜笔墨,指教一二! :lol
826C+826C都为 16进制数,不知道手动相加的结果是怎么个过程 加法
add ax,bx AX=?
汇编不会编 发表于 2012-12-11 16:35 static/image/common/back.gif
826C+826C都为 16进制数,不知道手动相加的结果是怎么个过程
826C+826C=104D8,由于cpu为16位,存储不了104D8 ,想加后进位丢失,等于04D8 04d8h 0482h 7082h e082h e088h e010h 6264h NGtailang 发表于 2012-12-11 16:50 static/image/common/back.gif
826C+826C=104D8,由于cpu为16位,存储不了104D8 ,想加后进位丢失,等于04D8
谢谢你的解答,不过我还有疑问
比如 826C 在16进制中 C代表 12
826C
+826C
------------
?
如果将C 替换成12 是这样换算的吗? 好像不是..我不太懂
82612
+82612
-------------
不明白怎么手动去相加 麻烦你啦 ~~
826C+826C,和10进制加法一样,首先C+C=24,因为是16进制数据,所以应该是18h,得到的结果是8,前面的1是进位,向高位加,6+6=12,再加进位1,得13,16进制表示是D,2+2=4,8+8=16,即为16进制的10h,最后结果应是104d8h,因ax是16位寄存器,只能存储4个16进制数,最前面的1存不进去,故ax最终结果是04d8h(在加法指令中,这个最高位的进位1其实是放在了标志寄存器的cf位。 看看附件里的图片详解,不懂哪点可以继续追问,再给你画图说明
lanmo 发表于 2012-12-12 08:59 static/image/common/back.gif
看看附件里的图片详解,不懂哪点可以继续追问,再给你画图说明
谢谢,我弄懂了。 以学为乐 发表于 2012-12-12 08:07 static/image/common/back.gif
826C+826C,和10进制加法一样,首先C+C=24,因为是16进制数据,所以应该是18h,得到的结果是8,前面的1是进位 ...
非常详细,谢谢你。
页:
[1]