MAIN PROC FAR
ASSUME CS:A1
START: PUSH DS
SUB AX,AX
PUSH AX
MOV BX,0110 1101 0011 0111B ;6D37H
MOV CH,4
B1: MOV CL,4
ROL BX,CL ;将BX中的数循环左移4位,也就是把BX最高4位,放到BX的最低4位上去。
MOV AL,BL ;将低8位放入AL
AND AL,0FH ;取低4位
ADD AL,30H ;加上30H 从这里开始将4位二进制数转成16进制ASCII码,
;0--的ASCII码是30H…9是39H,A是41H,B是42H…F是46H
CMP AL,3AH ;加结果是不是少于3A
JL B2 ;是的话,表示是0-9之中数
ADD AL,7H ;否则还要加上7,变成对应的A或B、C、D、E、F
B2: MOV DL,AL ;AL是转换好的一位16进制数的ASCII码
MOV AH,2
INT 21H ;显示到屏幕
DEC CH
JNZ B1 ;因为BX中其有4位16进制数,所以要处理4次。这里是判断处理完4次没,如果没有,就继续处理下一个数
RET
MAIN ENDP
A1 ENDS
END START!!
温馨提示:答案为网友推荐,仅供参考