历史上的今天
今天是:2024年12月24日(星期二)
2020年12月24日 | 51单片机十进制整数与二进制整数转换汇编语言子程序
2020-12-24 来源:51hei
====================================
【4位十进制整数转换为二进制整数子程序】
入口:十进制整数千位数RAM址存于R0,百位数、十位数、个位数RAM址依次加1;
返回值:转换所得二进制整数存于R3(高字节)R4(低字节)。
DtoB: MOV R2, #4 ;;R2←递减的循环次数初值
MOV A, @R0
MOV R4, A ;;R4←千位数
LP1 : MOV A, R4 ;;R3R4←(R3)(R4)*10
MOV B, #10
MUL AB
MOV R4, A
MOV B, #10
XCH A, B
XCH A, R3
MUL AB
ADD A, R3
XCH A, R4
INC R0 ;;RAM指针加1
ADD A, @R0 ;;R3R4←(R3)(R4)+((R0))
XCH A, R4
ADDC A, #0
MOV R3, A
DJNZ R2, LP1
RET
====================================
【双字节二进制整数转换为十进制整数BCD码子程序】
入口:二进制整数高字节存于R2,低字节存于R3
返回值:转换所得BCD码由高位至低位依次存于R4,R5,R6
BtoD: MOV R7, #16 ;;R7←递减的循环次数初值
MOV R4, #0 ;;结果寄存器清零
MOV R5, #0
MOV R6, #0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LP2: CLR C
MOV A, R3
RLC A
MOV R3, A
MOV A, R2
RLC A
MOV R2, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A, R6
ADDC A, R6
DA A
MOV R6, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R5, A
ADDC A, R5
DA
MOV R5, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R4, A
ADDC A, R4
DA
MOV R4, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DJNZ R7, LP2
RET
上一篇:单片机按键切换下一首歌
史海拾趣
|
/************************************************************** 320×240 16Bpp TFT LCD功能模块初始化 **************************************************************/ void Lcd_Init(void) { rLCDCON1=( ...… 查看全部问答> |
|
别人的导航软件的手写输入在我定制的CE平台上识别不了,为什么?跟平台定制有关没?CE组件没加? 别人的导航软件的手写输入在我定制的CE平台上识别不了,为什么?跟平台定制有关没?CE组件没加?… 查看全部问答> |
|
上次使用学习了一下Timer,每隔1秒钟中断一次,现在准备实现每隔1S钟读取一下内部的温度值,并在LCD上显示出来。 从手册288页上可以看出,LM3S8962的内部温度传感器有两个目的: 1. 防止温度过高或过低,影响系统芯片正常运行 ...… 查看全部问答> |
|
从《钢铁侠1》到《复仇者联盟》再到《钢铁侠3》,托尼胸前的反应堆,也更新了好几代。高中刚毕业,放假在家,就有了想自己做一个反应堆的想法,然后就开始实践了。 ◆ 第一步:采购原材料(具体如下) ● 网上定制的亚 ...… 查看全部问答> |
|
本帖最后由 DavidZH 于 2014-7-9 00:05 编辑 已经收到的HELP2416开发板,很精致。准备开始学习,按照以往学习其他MCU的经验,先是了解开发板的硬件,然后开始收集相关资料,如下图所示: 一、HELP2416的主芯片是S3C2416 芯片,其内核属于ARMv5 ...… 查看全部问答> |




