汇编语言

我的寄存器中存储了比如说123这个数,想显示到屏幕中去,就是要将123这个数转化为三位的ASCII码,应该如何用汇编语言转化呢?谢谢
最好给出具体程序,程序越简单越好
不仅是123,我还要判断到底他是1位的数,还是2位的数,我事先不知道。但最大是200。0-200之间的转换怎么办?

;其实汇编的学习有好多都是共同点,正如你所说十进制的转换就是经常用到的,这时就可以将其编成子
;程序(相当于函数),这样每次要用的时候直接把子程序拷贝就可以了,只需在关键的地方做少许修改.
;比如要转换的为123,那么子程序中最高位为3位,只需用到100d而没有必要1000d
;以下程序段将123存入BX中,然后调用子程序bini进行转换并显示
code segment
assume cs:code
main proc near

start:

mov bx,123
call bini

mov ah,4ch
int 21h

ret
main endp

bini proc near
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp

bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
bin endp

code ends
end start
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-20
next:mov ax,0
mov al,data4
mov bl,0
;BCD转换成ASCII
MOV BL,AL ;暂存要输出的数据AH
AND AL,0F0H ;屏蔽低四位
MOV CL,04H ;右移四位
SHR AL,CL
ADD AL,30H
MOV DL,AL ;输出高位
MOV AH,02H
INT 21H

MOV AL,BL
AND AL,0FH ;屏蔽高四位
ADD AL,30H
MOV DL,AL ;输出低位
MOV AH,02H
INT 21H
mov ah,4ch
int 21h
这是关键的程序
要实现的话只要自己再接点程序上去就得了
相似回答