汇编语言怎样实现ASCII码转换为二进制数

这是前一段时间碰到的一个难题,由于初学微机原理,对汇编一块相当头大,还请各位大虾多多指教。 先谢了

题目:将两个二进制数转换为二进制数码的ASCII码。
调用程序与子程序之间的任务分工是:调用程序提供待转换的数据,数据位数(8位,16位)和转换后存放ASCII码的首址等三个参量的地址,子程序完成二进制数的ASCII码转换。
-----------------------------------------------------------
DATA
SEGMENT
BIN1
DB
35H
BIN2
DW
0AB48H
NUM
DB
8,16
ASCBUF
DB
20H
DUP(0)
TABLE
DW
3
DUP(0)
DATA
ENDS
.....
COSEG
SEGMENT
...
MOV
TABLE,OFFSET
BIN1
MOV
TABLE+2,OFFSET
NUM
MOV
TABLE+4,OFFSET
ASCBUF
MOV
BX,OFFSET
TABLE
CALL
BINASC8
...
MOV
TABLE,OFFSET
BIN2
MOV
TABLE+2,OFFSET
NUM+1
MOV
TABLE+4,OFFSET
ASCBUF+10H
MOV
BX,OFFSET
TABLE
CALL
BINASC16
--------------------------------------------------------------
--------------------------------------------------------------
子程序如下:
BINASC
PROC
BINASC8:
MOV
DI,[BX]
MOV
DH,[DI]
JMP
TRAN
BINASC16:
MOV
DI,[BX]
MOV
DX,[DI]
TRAN:
MOV
DI,[BX+2]
MOV
CL,[DI]
XOR
CH,CH
MOV
DI,[BX+4]
LOP:
ROL
DX,1
MOV
AL,DL
AND
AL,01H
ADD
AL,30H
MOV
[DI],AL
INC
DI
LOOP
LOP
RET
BINASC
ENDP
--------------------------------------------------------------
程序是这个
温馨提示:答案为网友推荐,仅供参考
相似回答