汇编语言将二进制转化为十六进制的功能 ,代码每一句在二进制转化为十六进制中起到什么作用?

如题所述

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

这个程序的功能是将BX中的0110 1101 0011 0111B(6D37H)以16进制显示在屏幕上。
“显示在屏幕”的准确说法是:输出到系统标准控制台上。
不知道我说清楚没,希望能帮到你
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网