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

同问汇编语言 编程将二进制数转换为16进制数并显示的功能检举|2011-08-31 11:36提问者:443219703|浏览次数:453次利用中断类型16H调用键盘I/O接口程序,并显示由键盘中断程序送回的扫描码和ASCII码。显示的格式如下:
SCAN ASCII CHAR
1E 61 a
30 62 b
2E 63 c
按CTRL+C可以中止程序。CTRL+C对应的ASCII码为03H。我来帮他解答图片符号编号排版地图您还可以输入9999 个字您提交的参考资料超过50字,请删除参考资料:匿名提交回答

推荐答案检举|2011-09-13 21:15A1 SEGMENT
MAIN PROC FAR
ASSUME CS:A1
START: PUSH DS
SUB AX,AX
PUSH AX
MOV BX,0110110100110111B
MOV CH,4
B1: MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL B2
ADD AL,7H
B2: MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ B1
RET
MAIN ENDP
A1 ENDS
END START

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进制显示在屏幕上。
“显示在屏幕”的准确说法是:输出到系统标准控制台上。
不知道我说清楚没,希望能帮到你
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-16
在计算机里面,二进制和16进制,是等效的,不需要转换。
也不可能转换。

可以发生变化的,只有显示。
第2个回答  2013-04-01
MAIN PROC FAR
承担CS:A1

START:PUSH DS

SUB AX,AX

的PUSH AX

MOV BX,0110 1101 0011 0111乙; 6D37H MOV CH,4

ROL BX,CL B1:MOV CL,向左旋转BX四,这是BX,BX最高4,最低的4最多。

MOV AL,BL低8到AL

AL,0FH;低4

ADD AL,30H 30H耦合的4位二进制数,从这里到十六进制的ASCII代码 BR /> - 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 MOV AH是一个十六进制数转换好的ASCII代码

INT 21H;显示在屏幕上

DEC CH

的JNZ B1 BX是4个十六进制数,所以要处理的四倍。这里是判断完没有,如果没有,继续处理下一个数字

RET

MAIN ENDP

A1

END结束的开始

这个程序的功能是BX 0110 1101 0011 0111 B(6D37H)以十六进制显示在屏幕上。准确的说法是:

“显示在屏幕上”输出到系统的标准控制台上。
不认识我,显然没有,我希望你能帮助

汇编语言将二进制转化为十六进制的功能 ,代码每一句在二进制转化为十六...
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...

汇编语言 编程将二进制数转换为16进制数并显示的功能
转化1个数为R进制字符串。字符串表示,采用除r取余法,重复的计算n r的余数和n\/r的商,依次得到R进制的各个字符,值得注意的是,得到的R进制的各个字符顺序是从低位到高位,这和我们平时书写的顺序是相反的,为了和书写顺序保持一致,在最后阶段需要将字符串首尾交换。步骤1:将缓冲区首地址p和head 步...

二进制如何转换成十六进制?
1、二进制转换为十六进制方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最...

二进制如何转化为十六进制可以举个简单例子吗?
方法:把4位以上二进制数,从“右至左”,4个二进制组成一个部分,不足的用0补,然后按4位二进制转换为一位十六进制的方法求解。例:二进制数10011010转换为十六进制数 二进制数1001101从右至左,4位为一个部分形式如下:0100 1101 ① ②(为方便说明,我把这两部分左了标号,分别求出每部分...

二进制转换成十六进制的VB代码
' 用途:将二进制转化为十六进制 ' 输入:Bin(二进制数)' 输入数据类型:String ' 输出:BIN_to_HEX(十六进制数)' 输出数据类型:String ' 输入的最大数为2147483647个字符 Public Function BIN_to_HEX(ByVal Bin As String) As String Dim i As Long Dim H As String If Len(Bin) Mod 4...

二进制转十六进制是怎样的?
二进制转十六进制,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。具体方法如下。1、首先,先要看看十六位数的表示方法。2、二进制数与十六进制数之间的对应关系表,如下:3、二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每...

如何最简单的把二进制转化为十六进制?
具体步骤如下:1. 记住十进制与二进制、十六进制的对应关系,如下所示:十进制:0-15 二进制:0000-1111 十六进制:0-9,A-F 2. 对于二进制数,例如11011100,按照四位分段:1101 1100 将每段二进制数转换为十六进制:D-C 最终的十六进制结果为DC 通过这种方式,你可以在不复杂的运算下轻松实现...

二进制如何转化为十六进制
然后将每一组的四位二进制数转换为一位十六进制数。转换方法可以参考表2至2中的进制对应关系,也可以采用按权展开的方法进行转换。(说明:按权展开后得到的如果是0至9之间的数,直接写这个数即可;如果是10到15之间的数,要将其转换为十六进制的A到F。要注意十进制的10到15与十六进制的A到F的...

用汇编语言怎么把二进制数怎么转换成十六进制数送给数码管显示_百度知 ...
先根据数码管的极性共阴共阳做一个表,然后二进制数,屏蔽高4位,滴位查表显示;屏蔽低四位,右移4位,在数码管显示高4位

汇编语言二进制转换为十六进制并显示的程序(简化段程序),能不能详细...
inBin[bx] ;读取第[bx]个输入的字符 and dl, 0FH ;字符转换为实际的数值 0或1 shl ax, 1 ;ax 左移1位 add al, dl ;(al)+(dl) inc bx ;bx指向下一个字符 loop r0 ;循环处理输入的2进制字符串 mov n,...

相似回答