完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言。
在单片机出现之初,由于性能限制,都是使用汇编进行开发。随着威廉希尔官方网站 的发展,制程工艺的提升,单片机的处理速度越来越快,越来越多的单片机使用C语言开发。如今,一些低端MCU还在使用汇编开发;一些高要求程序优化的场合也会使用汇编;MCU/MPU的启动初始化部分也是汇编。本小结就带领读者感受下如何使用汇编操作开发板LED灯。 在编写代码前,本应该分析《开发板原理图》和《参考手册》,从而得知需要操作哪些外设寄存器,但这不是本小结主要内容,具体的分析方法放在后面对应的实验章节,读者暂时无需深入理解以下内容的由 来:
如代码段 6.2.1 所示。汇编代码对初学者不友好,读者对代码内容不理解也正常,也无需深入理解汇编指令,这里主要目的是展示如何用汇编操作寄存器。 ; Reset handler Reset_Handler PROC ; 使能 GPIOB LDR R0, =(0x40021000 + 0x18) ; RCC_APB2ENR LDR R1, [R0] ORR R1, R1, #(1<<3) STR R1, [R0] ; 设置 GPIOB0 为输出引脚 LDR R0, =(0x40010C00 + 0) ; GPIOB_ CRL LDR R1, [R0] ORR R1, R1, #(1<<0) STR R1, [R0] MainLoop ; 设置 GPIIOB0 输出高电平 LDR R0, =(0x40010C00 + 0xc) ; GPIOB_ODR LDR R1, [R0] ORR R1, R1, #(1<<0) STR R1, [R0] BL Delay ; 设置 GPIIOB0 输出低电平 LDR R0, =(0x40010C00 + 0xc) ; GPIOB_ODR LDR R1, [R0] BIC R1, R1, #(1<<0) STR R1, [R0] BL Delay B MainLoop Delay LDR R0, =300000 DelayLoop SUBS R0, #1 BNE DelayLoop BX LR NOP ENDP END
可以感受到,使用汇编编写程序,生涩难懂,因此越来越少的单片机使用汇编来编写代码,下面再来体验下C语言实现一样的效果。 |
|
|
|
只有小组成员才能发言,加入小组>>
2630 浏览 0 评论
836浏览 1评论
293浏览 1评论
610浏览 0评论
337浏览 0评论
555浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 23:48 , Processed in 1.053237 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191