|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这个程序是用于8051单片机的,对于怎样将R7,R6中的数值取出来进行转化的过程我不太看的明白,哪位高人路过给解释下?多谢多谢.
;标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数
;入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
CHANGE16_10:
CLR A ;BCD码初始化
MOV R3, A
MOV R4, A
MOV R5, A
MOV R2, #10H ;转换双字节十六进制整数
CHANG_1:
MOV A, R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R5 ;BCD码带进位自身相加,相当于乘2
ADDC A, R5
DA A ;十进制调整
MOV R5, A
MOV A, R4
ADDC A, R4
DA A
MOV R4, A
MOV A, R3
ADDC A, R3
MOV R3, A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2, CHANG_1 ;处理完16bit
RET |
|