当前位置: 代码迷 >> 汇编语言 >> 汇编 怎么将十六进制数转换成十进制数输出显示出来
  详细解决方案

汇编 怎么将十六进制数转换成十进制数输出显示出来

热度:505   发布时间:2016-05-02 04:45:25.0
汇编 如何将十六进制数转换成十进制数输出显示出来。
本帖最后由 damimi111 于 2013-12-30 21:53:39 编辑
AL寄存器存放了一个十六进制数,它的范围在00H-FFH。

我现在希望能有一个算法,能够将它转换成十进制,并显示在屏幕上。(最好能用 MOV AH, 02H INT 21H这个来显示)
比如,AL中存放的是30H,则输出048,或者就48也行。AL中放的是70H,则输出112。

00h-09h的算法很好实现,自己已经解决。
但是一旦转换出来的十进制数超过2位,这个算法就困难了,数学不好,看着ASCII码看了半天,归纳了很久没找到规律。。。求大神指教。

初识汇编,较关键的地方希望能多给点注释,感激不尽。




------解决方案--------------------
xor dx,dx 就是将 dx 置 0 ;由于要保证除以 10 时不溢出,所以用的是 div cx(=10),这样就是 dx:ax 组成的 dword 除以 cx,而 ax 里是原来的被除数,所以就要将 dx 置 0 了,否则有了其它内容的话,就会产生错误的结果。
test ax,ax 就是看商是否为 0;如果 为 0 了说明除法操作该结束了。
  相关解决方案