标题:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
只看楼主
张玲玲
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-21
结帖率:0
已结贴  问题点数:20 回复次数:2 
把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
Dec_ASCII Proc Near
push dx     这些dx,bx,是什么意思啊
push bx
push di
mov bx,10  这条指令干什么用的?
lea di,@@Temp_Save[6]
mov byte ptr [di],'$'     这句话不懂耶。。。
dec di  
 cld
@@Divide: xor dx,dx   什么意思?
div bx      
or dl,30h   
mov [di],dl   这句话什么意思
dec di
test ax,0ffffh     
jnz @@Divide     
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 7 dup(?)     
Dec_ASCII EndP
哪位大神能帮我讲解一下问的问题
搜索更多相关主题的帖子: pop 二进制 十进制 
2012-11-22 15:47
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:10 
mov bx,10  这条指令干什么用的?
用于除法的除数 就是进制了

mov byte ptr [di],'$'     这句话不懂耶。。。
懂中断的话就知道了 这里的$用于表示要输出字符串的结尾

@@Divide: xor dx,dx   什么意思?
清空dx 具体要看书才能知道

mov [di],dl   这句话什么意思
就是保存余数 因为这里除10余数只能是0到9

要看的东西有 逻辑运算 div指令 中断 看书谁也不能替你 只有看书才能学东西 问学不到东西的

祝你成功
2012-11-22 16:13
darkdsn
Rank: 2
等 级:论坛游民
帖 子:4
专家分:10
注 册:2012-11-27
得分:10 
AX中的无符号数也就是五位十进制数,要显示的话必须变成五位字符串,加上'$'(表示是字符串)就是6位,这中间要保护DX,BX,DI三个寄存器,每次需要除一下十,除法时要对DX清零,就这些了.
2012-11-27 23:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-387946-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.324990 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved