微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 四位16进制转换成5位十进制源程序

四位16进制转换成5位十进制源程序

时间:11-11 来源:互联网 点击:
;算法不错,记录一下。

;****************************************************
;十六进制转换为十进制的程序
;四位16进制转换成5位十进制子程序,
;R2,R3是保存的十六进制值
;其中入口R2为低位,R3为高位
;R4(十位,个位)R5(千位,百位)R6(万位) 为高位
;****************************************************

ORG 100H
HBCD:
;调试过程中方便R2,R3移出位的变化情况
BITST DATA 20H
R2BIT BIT BITST.0
R3BIT BIT BITST.1

MOV R2,#023H;11011110
MOV R3,#0C2H;11000010
CLR A
NOP
MOV R4,A
MOV R5,A
MOV R6,A

MOV R7,#10H ;设置循环指针
HBCD1:
;左移一位,移入C
CLR R2BIT
CLR C ;(清位累加累C)
MOV A,R2 ;将低位数据R2送入A
RLC A
MOV R2,A
MOV R2BIT,C

CLR R3BIT
MOV A,R3 ;将高位数据R3送入A
RLC A
MOV R3,A
MOV R3BIT,C

;每循环一下相当于乘2
;最高位相当于乘2的15次方
;次最高位相当于乘2的14次方
;。。。。。。。。。。。。。
MOV A,R4
ADDC A,R4
DA A
MOV R4,A

MOV A,R5
ADDC A ,R5
DA A
MOV R5,A

MOV A,R6
ADDC A,R6
DA A
MOV R6,A

DJNZ R7,HBCD1

LJMP $
END

;RET


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top