嵌入式 > 技术百科 > 详情

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

发布时间:2020-06-08 发布时间:
|
;算法不错,记录一下。

;****************************************************
;十六进制转换为十进制的程序
;四位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 

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何解决PCB传输线之SI反射问题