如何用汇编语言实现十进制到二进制的转换?

cf0072 2007-03-23 07:54:37
最近在学汇编,看了清华大学,沈美明的《IBM-PC 汇编语言程序设计》
教程之后对其中一段关于十进制到二进制的转换的代码有点困惑:
D_B proc near
mov bx,0
newchar: mov ah,1
int 21h
sub al, 30h
jl exit
cmp al,9d
jg exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit: ret
D_B endp (不是原文不过大致相仿)
我认为这段代码应该是另种十进制到二进制的转换的算法。
不是通于常说的除二取余或绛幂法等。
不知道哪位大虾能介绍一下或提供点参考。
小弟在此拜谢!
...全文
942 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2007-03-24
  • 打赏
  • 举报
回复
这个子程的功能是将输入的字符串转换为数值吧. 比如键入 '123', 则返回 7Bh(123d) 在 bx 中
cf0072 2007-03-24
  • 打赏
  • 举报
回复
谢谢!二楼说的没错。
可我就纳闷了,为什么书中说是转换为“二进制数“的过程。
其实就是将键盘接受的数(ASCCII表示)用数的真值表示!!
stuman 2007-03-24
  • 打赏
  • 举报
回复
没有看代码.我的理解是十进制数放入寄存器后是以二进制形式存放的,所以直接将其输出后就行.

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧