求教一个汇编问题~~怎样输出十进制数的ASCII码。。。

编写一个能实现两个十进制数的加法运算处理的程序。设每个十进制数最多10位。两个十进制数由键盘输入,结果以十进制数的ASCII码的形式输出。

这个题目我已经写好了“编写一个能实现两个十进制数的加法运算处理的程序。设每个十进制数最多10位。两个十进制数由键盘输入”。但是最后输出的结果要以ASCII码形式应该怎么做?我不是很会这东西。。。希望高手能说清楚一点。。。先谢谢啦~~

另外如果需要看已经写好的代码的话请短信我下,代码太长我就不发上来占位置了。

第1个回答  2007-06-25
;定义了一个子程序disp来显示ASCII码
;另外二进制数可以输入,显示十进制数和ascii码

D SEGMENT
D1 DB '0123456789ABCDEF'
d2 db ' ASCII is:$'
D ENDS

C SEGMENT
ASSUME DS:d,CS:C
START: MOV AX,D
MOV DS,AX

xor bx,bx
next: mov ah,1
int 21h
cmp al,0dh
jz inend
and al,0fh
shr al,1
rcl bx,1
jmp next
inend: mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
int 21
mov ax,bx
;以上是输入二进制数,并且输出换行,把二进制数存放在ax中

MOV BL,10
DIV BL
MOV BX,AX
;求十进制,十位在bl中,各位在bh中。
MOV DL,BL
ADD DL,30H
MOV AH,2
INT 21H
;显示十位
call disp
;调用disp显示ascii码
mov dl,0ah
int 21h
mov dl,0dh
int 21h
;换行
MOV DL,BH
ADD DL,30H
MOV AH,2
INT 21H
;显示个位
call disp
;调用disp显示个位的ascii码
MOV AH,4CH
INT 21H

disp proc
push ax
push bx
push cx
push dx

lea dx,d2
mov ah,9
int 21h

pop dx
push dx

mov dh,dl
mov cl,4
shr dl,cl
lea bx,d1
mov al,dl
xlat
mov dl,al
mov ah,2
int 21h

and dh,0fh
mov al,dh
xlat
mov dl,al
int 21h
mov dl,'H'
int 21h

pop dx
pop cx
pop bx
pop ax
ret
disp endp

C ENDS
END START本回答被网友采纳
第2个回答  2007-06-25
#include<stdio.h>
void main()
{
long int a,b,c;
scanf("%d,%d",&a,&b);
c=a+b;
printf("%c",c);
}
我运行过了,可以的,你试试,希望能帮助你~~~
第3个回答  2022-08-19
两个十进制数由键盘输入。
每个十进制数最多10位。

为了满足这种要求,最好是使用 BCD 码来存储与相加。
送去显示,也很方便。
相似回答