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

汇编语言程序的开发过程(汇编语言的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编写更高效的代码,而真正理解它的唯一方法就是使用它自己的自然语言来使用它。

总结

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


了解更多

    推荐阅读
  • pycharm中如何配置pyqt5(PycharmPyQt5配置亲测可用)

    继pyqt5因为版本问题各种坑外,在配置中通过百度也是各种坑,各种参考配置,各种报错。而且很多文章都是复制粘贴来的,没有可学习性。我们先打开pycharm,检测一下解释器是否配置号。没有的话,可以按照提示操作以下即可。

  • 172画的字怎么读(172画的字的简介)

    我们一起去了解并探讨一下这个问题吧!172画的字怎么读172画的汉字读,中国笔画最多的字笔画高达172画,由于该字比较少见,这是一种古字,所以电脑根本打不出来。据记载,中国的汉字是上古时代的华夏族人发明创造的,大约有五千年的历史。目前确切的来说,汉字只能追溯到公元前1300年,因为这个时期有了商朝的甲骨文。中国汉字是起源距今约7762年的历史,贾湖刻符经碳14物理测定,距今约7762年历史等等,是迄今为止连续使用时间最长的文字。

  • 春夜喜雨关于春的诗词(诗词鉴赏雨水)

    好雨知时节,当春乃发生。雨水时节,獭祭鱼,雁北归,草木萌动,春天正式到来。何物最先知,虚庭草争出。如何一霶霈,万物尽熙熙。昨夜新雷催好雨,蔬畦麦垅最先青。流水不顾返,草木生未已。红洗花容净,青滋柳色新。东郊农事动,渐快一犁人。不晓意所欣,道是斋厨足。向圃轻烟含柳树,隔廉疏雨湿梅花。已觉东风到穷巷,一畦春雨野蔬香。

  • 鱼炒洋葱怎么做(这样做的最好吃)

    我们一起去了解并探讨一下这个问题吧!鱼炒洋葱怎么做首先处理墨鱼,将那层黑皮剥掉。之后再处理内脏,头部。清理干净的墨鱼冷水冲洗。用刀尖划出十字花刀。将切好的墨鱼焯水,水烧开后下入墨鱼,加入1勺料酒,大火2分钟捞出。起油锅,加入准备好的香料炒香。加入少许盐,根据个人口味放盐。(可以根据个人喜欢,如果不喜欢胡椒粉可以不加。)快速翻炒1分钟即可出锅。盛出装盘,撒上葱花。

  • 如何挑选床垫的常识(挑选床垫的注意事项)

    价格在价格上的话,可以按照家庭给予的预算去购买,几百到上万的床垫款式应有尽有,但是如果考虑到国内的大众的行情的话,还是推荐性价比高的,可以从价格、环保、耐用的床垫。质量在质量上也是购床至关重要的一步,一分钱一分货,千万不要贪图小便宜而忽略了质量上的问题。品牌除了几个排列名的大品牌良心品牌,其他品牌的话大家可以靠后去考虑,因为其他的多数都是大同小异,没有多大的差别的。

  • 怎么防止渔夫帽掉(几个方法防止渔夫帽掉)

    以下内容大家不妨参考一二希望能帮到您!怎么防止渔夫帽掉在帽子里面头围的那一圈缝一圈魔术贴,缝在靠近头顶的部分,缝制一个固定发卡的东西到帽子里面,也是可以的。在帽沿两侧各缝一根绳子,戴帽子是固定在下巴下面就可以了。戴渔夫帽时防止掉落得方法很多,大家可以尽量发挥自己的聪明才智,带好渔夫帽,在美丽的大丽小巷,在海风拂面的海边,在高楼林立的写字楼里尽显风采。

  • 美国对流天气(热浪席卷美国多个地区)

    当地时间6月5日,据美国国家气象局信息,创纪录的热浪天气将于本周末席卷美国多个地区,超过500万居民将受高温影响。根据气象局信息,热浪于5日到达美国东北部地区,预计多个地区将创下今年的高温纪录。与此同时,美国中西部和平原地区的气温接近100华氏度。美国疾病预防控制中心数据显示,美国每年有超过700人死于极端高温天气,建议有健康风险的居民做好防暑措施。

  • 如何把华为手机数据迁移到小米手机(关于如何把华为手机数据迁移到小米手机)

    以下内容大家不妨参考一二希望能帮到您!如何把华为手机数据迁移到小米手机在小米手机上打开小米换机app,然后选择我是新手机。然后在旧手机类型中选择安卓。再之后用华为手机扫描小米手机上的二维码下载安装小米换机。

  • 大阳电动车第一次充电充多久(为什么?)

    当电动车电量显示已经到最后一个格子的时候,就要准备充电了。在首次充电的时候电池应该充满,但充满不代表过度充电,在白天充电容易掌控充电时间,不至于让电瓶首次出现过度充电与放电的情况,这样更容易让电瓶里面的首次化学反应正常。关于首次充电的充电时间,因为电瓶车电瓶出厂并未使用的时候,都没有经历过充电和放电,要保证电瓶的正常工作。