注册 登录
编程论坛 汇编论坛

把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

张玲玲 发布于 2012-11-22 15:47, 554 次点击
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
哪位大神能帮我讲解一下问的问题
2 回复
#2
zklhp2012-11-22 16:13
mov bx,10  这条指令干什么用的?
用于除法的除数 就是进制了

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

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

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

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

祝你成功
#3
darkdsn2012-11-27 23:14
AX中的无符号数也就是五位十进制数,要显示的话必须变成五位字符串,加上'$'(表示是字符串)就是6位,这中间要保护DX,BX,DI三个寄存器,每次需要除一下十,除法时要对DX清零,就这些了.
1