用汇编语言怎样实现16进制转换为压缩的BCD码

我用的是计数器T1,部分程序如下
MOV R0, #35H ;存放T1的值
MOV @R0, TL0
INC R0
MOV @R0, TH0
现在呢 我想把R0中的值拿出来 比如2586用十六进制表示为0A1AH ,我想通过程序 ,把个位十位百位千位的数值都转化过来,分别存放,之后通过查表的偏移量,把2586分别显示在四个数码管上,到这我就不会了

一个十六进制数最大255,所以转换为压缩BCD码需要两个字节,转换方法是:
1、第一步,用该数除以100,结果存入高八位字节的低四位。
2、第二步用余数除以10,结果存入低八位的高四位。
3、第三遍,将余数存入低八位的低四位。
例程:
H2BCD:
MOV B,#100

DIV AB

MOV R2,A

MOV A,B

MOV B,#10

DIV AB

SWAP A,B
ANL A,#0F0H

ORL A,B

MOV R3,A

RET
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-10
相似回答