求编写一8086汇编程序,将2个字节的二进制数,变换成用ASCII码表示的四位十六进制数(用四字节表示)

考试会考到这道题,自己不太会做,求懂的大神来个正确的答案,万分感激!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

;-------------------------------------
DATA1 SEGMENT
NUM DW 13579
ASC DB ?, ?, ?, ?
DATA1 ENDS
;-------------------------------------
CODE SEGMENT PARA PUBLIC

ASSUME CS:CODE, DS:DATA1

START:
MOV AX, DATA1
MOV DS, AX

MOV BX, NUM
LEA DI, ASC

CALL HEX_ASC

MOV AH, 2
MOV DL, ASC + 0
INT 21H
MOV DL, ASC + 1
INT 21H
MOV DL, ASC + 2
INT 21H
MOV DL, ASC + 3
INT 21H

MOV AH, 4CH
INT 21H
;====================================
HEX_ASC PROC NEAR
MOV CX, 0404H
CC: ROL BX, CL ;循环左移,将最高为存到BL的低四位
MOV DL, BL
AND DL, 0FH ;
CMP DL, 10
JB BB
ADD DL, 7
BB: ADD DL, '0'
MOV [DI], DL
INC DI
DEC CH
JNZ CC
RET
HEX_ASC ENDP
;====================================
CODE ENDS
;-------------------------------------
END START追问

感谢你回答我,本来想要加财富值都加上的,但是自己只有0财富值,请问,您给的答案正确么?本人学渣。。。。。。。。。。。。。

追答

保证正确。

NUM DW 13579 --0~65535,你随便写
ASC DB ?, ?, ?, ?--用于存放对应的 ASCII 码

13579,转换成 16 进制,你自己转换一下试试看。

本程序,执行后,就会显示出来正确的结果。
----
你可以拿这程序,让学霸同学去实验,便知结果。

追问

大神,你是做这行的吧,好屌!
多谢!!!!!!!!!!!!!

追答

看我的百度空间吧,有无数的程序。

温馨提示:答案为网友推荐,仅供参考
相似回答