百摩网
当前位置: 首页 生活百科

汇编语言程序的开发过程(汇编语言的4种用法)

时间:2023-05-30 作者: 小编 阅读量: 1 栏目名: 生活百科

很多嵌入式开发人员认为应该避免使用汇编语言,原因是它特定于所使用的处理器架构,难以阅读、理解和维护。我们检查的代码片段可能需要在使用前进行修改。许多现代处理器都有断点汇编指令,使用汇编代码执行该指令是完全合适的。对于ArmCortex-M处理器,使用类似于STM32CubeIDE的IDE,这样的汇编实现可能如下所示:当到达该指令时,处理器将停止执行。这些功能可能因一个IDE而异。

很多嵌入式开发人员认为应该避免使用汇编语言,原因是它特定于所使用的处理器架构,难以阅读、理解和维护。今天,我们将看看仍然适合使用汇编语言的几个领域以及该代码的样子。

在我们查看仍然可以使用汇编语言的每个领域之前,请记住,这些汇编指令如何集成到代码库中将根据所使用的开发环境而有所不同。通常有一些自定义编译器函数用于让编译器语言知道正在使用汇编指令,例如_asm()。我们检查的代码片段可能需要在使用前进行修改。



汇编用法 1 – 执行断点指令

每当我开始一个新项目时,我在实施过程中做的第一件事就是将断点的汇编指令放在 CPU 故障、看门狗超时和特殊 RTOS 事件(例如 malloc 失败)的中断服务例程中(即使我避免使用malloc)。这样做的原因是我想在意外到达这些功能之一时收到通知,但我不想管理这些断点。许多现代处理器都有断点汇编指令,使用汇编代码执行该指令是完全合适的。

对于 Arm Cortex-M 处理器,使用类似于 STM32 CubeIDE 的 IDE,这样的汇编实现可能如下所示:



当到达该指令时,处理器将停止执行。

汇编用法 2 – 从引导加载程序到应用程序的转换

嵌入式开发人员应该考虑使用汇编语言的第二个领域是从引导加载程序到应用程序代码的过渡点。在许多系统中,引导加载程序是第一个执行的应用程序。它设置处理器、验证内存并可能执行其他几个功能。但在某些时候,引导加载程序让位并跳转到主应用程序。为了使跳转成功,处理器中的许多组件需要设置为其初始状态,例如系统堆栈,然后需要加载应用程序的复位向量的函数指针。

当我将汇编语言集成到应用程序中时,我经常使用 IDE 的汇编功能。这些功能可能因一个 IDE 而异。例如,下面是一个函数,它接受应用程序的复位向量所在的起始地址位置。此代码是使用 NXP 特定工具链为 NXP Kinetis-L 处理器编写的:



另一个相同功能的示例,但在这种情况下,代码是为德州仪器 C2000 处理器编写的:



同样,这提供了对处理器的低级控制,以确保一切都回到原点,然后应用程序可以从头开始执行。

汇编用法 3 – 控制循环中的代码优化

在某些情况下,可能需要在使用汇编的高频控制循环中优化代码。在装配中手动编码快速控制回路过去很常见,虽然有时这仍然是合适的,但在当今拥有超快处理器和使用复杂优化技术的编译器的嵌入式开发环境中,汇编语言使用的最后一种情况正在消失。

汇编用法 4 – 教授微控制器基础知识

虽然今天许多人都希望从可能的最高抽象级别开始,但对于嵌入式系统来说,开发人员了解底层发生的事情至关重要,并且没有比在汇编中编写软件更好的学习方法了。

虽然不应该花很多时间在编写汇编上,但刚接触嵌入式系统的开发人员应该编写一些非常基本的应用程序,例如“Hello World”应用程序和闪烁 LED 应用程序,以了解如何初始化处理器,控制寄存器并稍微熟悉底层指令集。如果开发人员了解底层架构,这些细节可以帮助开发人员用 C/C编写更高效的代码,而真正理解它的唯一方法就是使用它自己的自然语言来使用它。

总结

今天在大多数情况下应该避免使用汇编语言,但是当使用它时,它可以提供一种机制来非常精细地控制应用程序的行为方式。如果你确实决定使用某种汇编语言,请确保你大量记录该代码区域,以便你自己和其他嵌入式开发人员将来更容易维护该代码。


了解更多

    推荐阅读
  • 怎么预防黄鼠狼偷鸡(怎么预防黄鼠狼偷鸡)

    散养鸡的养殖还是比较简单的,许多的农村都会养一些鸡,希望大家可以有效的预防黄鼠狼,让鸡长的更健康。

  • 同期是什么意思(同期的解释)

    同期的解释同期,读音是tóngqī,汉语词语,意思是同一时期同期增长是指相同主体,一年中的同一时期,但是年份不同进行对比同比增长就是“去年同期比增长”的意思,其中,去年同期又简称“同期”示例:相同的时期历史上同。

  • 正宗的河南肉饼怎么做好吃(肉饼的做法步骤)

    正宗的河南肉饼怎么做好吃?以下内容希望对你有帮助!正宗的河南肉饼怎么做好吃材料:肉馅、葱、姜、蒜、香油、酱油、盐、水。

  • 微波炉怎么加热牛奶(微波炉加热牛奶的方法)

    接下来我们就一起去研究一下吧!微波炉怎么加热牛奶首先将牛奶放放到适用于微波炉的玻璃杯中,不要装太满,离杯口2-3cm即可。将放入牛奶的玻璃杯放入微波炉里加热,加热2分钟左右。加热拿出来之后,用勺子搅拌牛奶,这样让牛奶热的更加均匀,这样牛奶就热好了。

  • 笔记本如何设置开机密码(笔记本设置开机密码方法介绍)

    以下内容希望对你有帮助!笔记本如何设置开机密码点击开始菜单按钮。在账户界面,找到“登陆选项”并点击。跳转出创建密码栏框。创建好密码后,点击下一步,再点击完成,下次电脑登陆时就可以使用密码登陆了。

  • 吃哪些东西补气补血(女人体虚吃什么好)

    中医上认为,气血是由于体内“气”出现了亏损,导致各种气化功能出现了减弱,所以身体中的某些机能就出现了退化现象。无论气虚、血虚、肾虚,皆宜食之。但是需要特别注意的是,香菇不能够多吃,否则容易引起肠胃胀气。以上列举的这些食物都是可以治疗女人气虚的,但是建议可以买几种来搭配食用,不要一次吃一种或过多,和长期吃一种,搭配食用可以防止厌食和吃腻!

  • 机器人怎么连接网络(好帅机器人怎么连接网络)

    机器人是自动执行工作的机器装置,包括一切模拟人类行为或思想与模拟其他生物的机械。狭义上对机器人的定义还有很多分类法及争议,有些计算机程序甚至也被称为机器人。在当代工业中,机器人指能自动运行任务的人造机器设备,用以取代或协助人类工作,一般会是机电设备,由计算机程序或是电子电路控制。

  • 优胜美地国家公园小木屋(优胜美地国家公园一日游)

    世界最高的瀑布前20名当中,优胜美地山谷的瀑布独占3名,其中的Yosemite瀑布是北美洲最高的瀑布。除了令人震撼的瀑布和冰川,这里的图奥勒米牧场是遁世之地,隐居者的天堂。图奥勒米也是远足者和背包客们的基地,从这里出发可以抵达许多区域。胜美地山谷深1200多米,山谷两侧是高耸的峭壁,遍布经过冰川冲刷的岩石,被称赞为优胜美地国家公园的珠宝。

  • 新款奥迪a8l官图发布(首批顶配奥迪A8L亮相)

    首批顶配奥迪A8L亮相,霸气又狂躁,4.0T轻混四驱,内饰总算能看了新款奥迪A8车型海外已经亮相,引入国内也是迫在眉睫得事,预计到秋季就能进店。不过这也消耗了A8的高级感,与低位车型使用一样的灯组设计,车主多少觉得不够体面。至于动力A8用上奥迪最强,起步3.0T顶配4.0T,至于这一次遇到的顶配车型自然时后者,并且两个版本都还匹配了48V轻混系统,功率分别达到250/338kW。并且有车主指出,开了A8后找对象也容易不少。

  • 晒干的豆角怎么做好吃(晒干的豆角怎么做才好吃)

    豇豆去掉两头摘洗干净后放入锅中焯一下水,不用焯太长时间,豇豆变色变软后捞出。把晒好的干豆角放窗台上继续晒,经常翻一下,再晒几天,确保完全晒干。晒好的干豆角放袋子里常温保存,放家里干爽的地方就可以了。干豆角炖五花肉,干豆角炖排骨都超级好吃的。吃的时候用水泡软,泡软后反复清洗,切成小段,五花肉或排骨快熟的时候放入再炖一会就可以了。