如何使用汇编语言将BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来?

这个代码用些地方错误了!!可我老改不出来……谢谢高手帮我改一下编程,将BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。分析:将十六进制数由高到低逐位转换为ASC... 这个代码用些地方错误了!!可我老改不出来……谢谢高手帮我改一下

编程,将BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。
分析:将十六进制数由高到低逐位转换为ASCII码,再进行屏幕显示DOS功能调用。
参考子程序如下:
HTOA2 PROC
PUSH CX
PUSH DX
XOR AL,AL
MOV CH,4
LOP: MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRN
ADD AL,07H
PRN: MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
JNZ LOP
POP DX
POP CX
RET
HTOA2 ENDP
展开
 我来答
pig05121
2010-12-01 · TA获得超过600个赞
知道小有建树答主
回答量:234
采纳率:50%
帮助的人:158万
展开全部
程序没错呀,我直接复制过来,用masm6.15编译成功,运行正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万世流香
推荐于2017-11-23 · TA获得超过430个赞
知道答主
回答量:195
采纳率:0%
帮助的人:228万
展开全部
DEC CH
cmp ch,0 ;这句忘了
JNZ LOP
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NJGQZF
推荐于2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1563万
展开全部
disp proc near ;显示16进制数(字母大写)子程序,入口:BX寄存器存有二进制待显示数
mov dl,bh
mov cl,4
shr dl,cl
cmp dl,10
jc hex1
add dl,30h
hex1: add dl,37h
mov ah,02h
int 21h

mov dl,bh
and dl,0fh
cmp dl,10
jc hex2
add dl,30h
hex2: add dl,37h
mov ah,02h
int 21h

mov dl,bl
mov cl,4
shr dl,cl
cmp dl,10
jc hex3
add dl,30h
hex3: add dl,37h
mov ah,02h
int 21h

mov dl,bl
and dl,0fh
cmp dl,10
jc hex4
add dl,30h
hex4: add dl,37h
mov ah,02h
int 21h

mov dl,48h
mov ah,02h
int 21h
ret
disp endp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式