请问汇编语言十进制转换为ASCII码的程序段,急!

谢谢!

; 下面的程序是16位汇编,以十进制数89158为例,编译通过,运行正确。

; Program Name: Dec_ASCII.asm

Dec_ASCII SEGMENT
ASSUME CS:Dec_ASCII,DS:Dec_ASCII
ORG 100H

Start: jmp Begin

ASCII DB 5 dup(' ') ;保存十进制无符号数的ASCII
ASCII_End DB '$' ;字符串结束标志

Decimal DW 89158 ; 十进制无符号数,最大65535。

Begin: lea di,ASCII_End ; 字符串尾地址
dec di
mov bx,10 ; 用于除10,取商数和余数
std ;设置变址寄存器变址方向
mov ax,Decimal ; 取十进制无符号数

ASCII_Ctr: xor dx,dx
div bx ; 除10,取商数和余数
xchg ax,dx ;交换商数和余数
or al,30h ;转换成ASCII码
stosb ;保存ASCII码
mov ax,dx ;把商数放入ax中
cmp ax,0
ja ASCII_Ctr ;商数大于0,继续取余数

lea dx,ASCII ;字符串首地址
mov ah,9 ; 显示结果
int 21h

Exit_Proc: mov ax,4c00h ;结束程序
int 21h

Dec_ASCII ENDS
END Start
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-08-19

汇编语言十进制转换为ASCII码的程序段,急!

十进制数 13579 为例,编译通过,运行正确。

第2个回答  2009-03-25
分别读出十进制数的每一位,按照ASCII码表上0-9数字和其ASCII码的对于关系转换就行了啊。
相似回答