
如何使用汇编语言将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 展开
编程,将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 展开
展开全部
程序没错呀,我直接复制过来,用masm6.15编译成功,运行正确。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DEC CH
cmp ch,0 ;这句忘了
JNZ LOP
cmp ch,0 ;这句忘了
JNZ LOP
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询