功能是把N个8个二进制数据转换成16进制字符数据

编写一个汇编语言程序,功能是把N个8个二进制数据转换成16进制字符数据。假定N个数据存放在字节变量VARB中,转换后的字符数据存放在HVARB中,提示0--9的字符码为30H--39H,A--F的字符码为41H--46H 。

用51的汇编语言,编写如下:

;--------------------
H2A_8:
MOV R0, #VARB
MOV R1, #HVARB
MOV R2, #8
LOOP_HA:
MOV A, @R0
LCALL H2A
MOV @R1, A
INC R0
INC R1
DJNZ R2, LOOP_HA
RET
;--------------------
H2A:
CJNE A, #0A0H, $+3
JC _0_9
ADD A, #07H
_0_9:
ADD A, #30H
RET
;--------------------
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-15
汇编不会,
第2个回答  2019-03-11
用51的汇编语言,编写如下:
;--------------------
H2A_8:
MOV
R0,
#VARB
MOV
R1,
#HVARB
MOV
R2,
#8
LOOP_HA:
MOV
A,
@R0
LCALL
H2A
MOV
@R1,
A
INC
R0
INC
R1
DJNZ
R2,
LOOP_HA
RET
;--------------------
H2A:
CJNE
A,
#0A0H,
$+3
JC
_0_9
ADD
A,
#07H
_0_9:
ADD
A,
#30H
RET
;--------------------

功能是把N个8个二进制数据转换成16进制字符数据
H2A_8:MOV R0, #VARB MOV R1, #HVARB MOV R2, #8 LOOP_HA:MOV A, @R0 LCALL H2A MOV @R1, A INC R0 INC R1 DJNZ R2, LOOP_HA RET ;--- H2A:CJNE A, #0A0H, $+3 JC _0_9 ADD A, #07H _0_9:ADD A, #30H...

二进制怎么转换成十六进制
因为二进制数仅由0和1组成,你只需记住,二进制数的低位到高位分别表示1,2,4,8,16,32……,即2的(n-1)次方即可。对于四位二进制数,从高到低分别是8,4,2,1.二进制转16进制,只需将2进制数从右向左每四位一组合,每一个组合以一个十六进制数表示。比如:(3)1110110四个四个组合后相当...

将一个8位二进制数转换成十六进制数?
就是一个相应八进制数的表示。010110.001100B=26.14Q 八进制转二进制反之则可。3-2二进制转十进制:见1 3-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。00100110.000...

8进制数怎么转换成16进制数
1、先将八进制转换成二进制,再将二进制转换成十六进制 2、先将八进制转换成十进制,再将十进制转换成十六进制 例如:八进制的:1234567 转换为二进制是每个数字转换为三位二进制:001 010 011 100 101 110 111 然后把这些数字从右边开始进行按四位分组:0 0101 0011 1001 0111 0111 然后从右边每...

C语言将二进制数N转换成16进制的程序
1 输入的二进制数存成字符串;2 遍历每位字符,并将其转为整数;3以16进制输出。代码:int main(){char bin[33];int n = 0,i;scanf("%s",bin);for(i = 0; bin[i]; i ++){n*=10;n+=bin[i]-'0';}printf("%x",n);} 熟地黄饿 | 发布于2018-03-13 举报| 评论 0 0 1条折叠回答 ...

二进制转换成十六进制方法
二进制转十六进制:因为二进制数仅由0和1组成,你只需记住,二进制数的低位到高位分别表示1,2,4,8,16,32……,即2的(n-1)次方即可。对于四位二进制数,从高到低分别是8,4,2,1。二进制转16进制,只需将2进制数从右向左每四位一组合,每一个组合以一个十六进制数表示。比如:(3...

二进制转十六进制简便方法?
例:二进制数10011010转换为十六进制数 二进制数1001101从右至左,4位为一个部分形式如下:0100 1101 ① ②(为方便说明,我把这两部分左了标号,分别求出每部分的解)①(0100)2 =(4)10=(0A)16 ②(1101)2 =(8+4+1)10=(13)10=(0D)16 结果为(1001101)2=(0AD)1...

怎么把二进制数十六进制化?
为了更好地理解这个过程,我们可以看一个例子。将二进制数1101101010101011转换为十六进制数,我们可以把它分成4位一组得到1101101010101011,然后将每组转换为十六进制数得到DAAB,最后按照原来的顺序排列得到0xDAAB。通过上述的操作就可以将二进制数转换为十六进制了。如果你觉得这样转换太麻烦的话,我们还可以...

八进制转换成十六进制的算法 请举例说明
1B。2、将第一步中的二进制数1011.1B转换为十六进制。整数部分1011正好是四位,组成一组,转换为十六进制是B(可先将1011按权展开得到一个十进制数是11,11对应十六进制的B)。小数部分只有一位,后面要补三个0,组成一组,1000,转换为十六进制是8。所以,转换为十六进制的结果是B.8H。

8进制数如何转换为16进制数?
1、八进制转成二进制,方法为八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。2、二进制转成十六进制,方法为4位二进制数按权展开相加得到1位八进制数。方法二:1、八进制转成十进制,方法为把八进制数按权展开、相加即得十进制数。2、十进制转成十六进制...

相似回答