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

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

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

很多嵌入式开发人员认为应该避免使用汇编语言,原因是它特定于所使用的处理器架构,难以阅读、理解和维护。我们检查的代码片段可能需要在使用前进行修改。许多现代处理器都有断点汇编指令,使用汇编代码执行该指令是完全合适的。对于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编写更高效的代码,而真正理解它的唯一方法就是使用它自己的自然语言来使用它。

总结

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


了解更多

    推荐阅读
  • 摆脱负面情绪十点心得(学会从这3个方面开始)

    生活中很多的烦恼来源于人际关系,而人际关系中钝感力就是重要的一方面。钝感是一种才能,保持一点钝感力,就是让我们不要对生活中的事物太过情绪化,凡事“迟钝”一些,也不一定都是坏事。做一个情绪稳定的人,钝感力也是不可或缺的一部分,这样也能有助于我们避免负面情绪的产生。

  • 金银豆腐的做法(怎么做金银豆腐)

    跟着小编一起来看一看吧!金银豆腐的做法材料:豆腐、鸡蛋、精盐、味精、熟猪油、葱末。将豆腐用淡盐水浸泡并洗净,捞出沥水,放在盘内,上笼用旺火蒸透。取出豆腐,晾凉;切去外层硬皮,再切成2厘米见方的豆腐块。鸡蛋磕入碗内,用筷子搅打均匀,加入精盐、味精、豆腐丁拌匀成鸡蛋豆腐液。炒锅内加入熟猪油,置火上烧热,放入葱末秒炒,加入鸡蛋豆腐液炒熟,出锅装盘即可。

  • 2022襄阳襄州区落户办理地点汇总(襄阳市区落户条件)

    2022襄阳襄州区落户办理地点汇总一、襄阳市襄州区张湾街道便民服务中心办理时间:周一至周五上午8:30-12:00下午14:30-18:00(法定节假日除外)办理地点:湖北省襄阳市襄州区张湾街道便民服务中心一楼综合窗口办理窗口:综合窗口办公电话:0710-2769929交通指引公交:襄阳市内坐4路、9路、16路、59路、540路、541路、602路、襄州区城关一中下车后向北过人行天至红星路,向北5

  • 鸡爪放冷藏多久不能吃(鸡爪放在冰箱冷冻多久还能吃?)

    1、如果是自己制作的鸡爪,一般都不会添加防腐剂,而鸡爪的营养丰富又很容易变质,所以保质期是比较短的,一般来说置于冰箱的冷藏室中保存的话可以保质3天左右。

  • 广州一座来就不想走的城市(广州还有这些你们没有想到的事情)

    目前已成为广州代表性文化地标之一。一家60年的老企业,广州无线电集团是一家以“高端高科技制造业、高端现代服务业”为战略定位的。2016年位列中国电子信息百强企业第35名。金域检验目前在内地及香港地区拥有33家医学实验室,开展医学检验、临床试验、食品卫生检验、司法鉴定等业务。2016年营业收入预期超过30亿元,过去三年公司营业收入平均复合增长率超过32%。

  • 补气血喝什么煮水(血为百病之始常喝这一碗)

    330岁到40岁的女性这个年龄段的女性内分泌和卵巢功能逐渐减弱,皮肤易干燥,眼尾部分开始出现鱼尾纹。红枣可养胃、安神,特别是鲜枣,含丰富的维生素C以及钙、铁,中年女性骨质疏松较严重,多吃红枣可改善。材料:糯米、红皮花生、红豆、鲜红枣、红糖做法:1、红皮花生、红豆、枣加水浸泡6小时,糯米加水浸泡6小时。

  • 大一需要什么配置的电脑(上大学需要啥电脑配置)

    因为当你使用苹果相关的笔记本等设备时,可能会遇到不限于:校园网连接问题,专业软件运行问题等,大方面来说苹果系统对大多数专业来说都是弊大于利。当然,部分专业确实苹果系统有一定优势,我们也推荐使用,可以结合自身以及咨询前辈。

  • 俞敏洪是不是住豪宅(家庭是一台复印机)

    2个月内,小雪的体重暴瘦40斤,仿佛全身的骨头都能看得见。女儿异常的行为几乎让这个家庭面临崩溃,尤其是小雪的妈妈。然而小雪缺少的并非是生理上的营养,而是心理上的营养。小雪的妈妈联系上爸妈育儿网,并通过介绍,接触到了黄爱萍老师。而小雪的妈妈也重新拥有了自己的事业,拥有了崭新的人生。

  • word文档出问题了怎么恢复(word打不开文档怎么办)

    Word是许多计算机用户在书写时使用的一种文件格式。比如当一个Word文档,发现由于损坏打不开的时候,这时我们对于word打不开文档怎么办?其实恢复未保存的Word内容很简单!来看看怎么设置自动保存吧~打开Word选项,点击保存,然后勾选,输入相应的分钟。修复完成后,选择“预览”按钮,点击进去查看是否确定。上述给大家讲解word打不开文档怎么办及解决方法,遇到一样问题时,就知道怎么处理了。

  • 世界十大名校(世界十大名校是什么)

    剑桥大学,坐落于英国剑桥,是一所世界著名的公立研究型大学,采用书院联邦制,与牛津大学、伦敦大学学院、帝国理工学院、伦敦政治经济学院同属“G5超级精英大学”。麻省理工学院,坐落于美国马萨诸塞州波士顿都市区剑桥市,是世界著名私立研究型大学。加州大学伯克利分校,简称伯克利,位于美国旧金山湾区伯克利市,是世界著名公立研究型大学、在学术界享有盛誉。