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

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

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

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

总结

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


了解更多

    推荐阅读
  • 铁线莲最好养的品种(铁线莲什么品种好养)

    在种植铁线莲时,选择阳光比较充分的地方,这样有利植株开花。铁线莲享有“藤本花卉皇后”之美称,花色一般为白色,花有芳香气味,园林栽培中可用木条、竹材等搭架让铁线莲新生的茎蔓缠绕其上生长,也可栽培于绿廊支柱附近,显得优雅别致。铁线莲搭配花架、棚架、廊、灯柱、栅栏、拱门,构成园林绿化独立的景观,既能满足游人的观赏,又能够增加绿化量,两全其美。

  • 电瓶车总闸开关怎么拆开(电动车维修之闸把开关)

    电动车维修之闸把开关闸把开关即刹车断电,刹车时将刹车信号传递给控制器,控制器接收到信号后对电动机立即停止供电。其内部有一个机械式微动开关,平时为常开状态,刹车时闭合导通给控制器传递刹车信号。刹车时5V电压变为0V停止供电。当刹车时12V信号传入控制器,控制器断开电动机供电同时刹车灯亮起。

  • 爱慕连体塑形内衣(爱慕美体塑身衣)

    背部的V形设计也是一大亮点,紧密贴合肌肤、塑造美妙形态的同时尽显女性背部优雅姿态,绽放女性自信、张扬的魅力。臀围材质是轻软的蕾丝,舒适且不会让人产生勒感,真是性感与舒适兼具。爱慕品牌代言人辛芷蕾身着这件美世连体衣,眼神坚毅充满自信,美背细肩带设计勾显出其性感又匀称的背部线条,打造女性自信神采。好身材与自信感二者缺一不可。

  • 最新款手机哪个品牌最好(10月上半月六大品牌最受关注手机大媲美)

    最新款手机哪个品牌最好手机市场上各大品牌由于品牌价值以及品牌实力的不同,造成最受用户关注产品的差异。但在整体市场上,诺基亚、索爱、摩托罗拉与三星这四家厂商已经形成对抗之势,在一线阵营当中展开激烈的市场争夺战。但相比之下,诺基亚的优势最为突出。以下,消费调研中心ZDC根据手机市场上品牌分布状况,对关注度较高的四大国外厂商以及两家国产厂商进行产品关注度调查,分别得出主流厂商产品关注TOP10排行榜。

  • 海的女儿童话故事(海的女儿讲了什么)

    当小人鱼看到英俊的王子时,深深被他吸引住了。小人鱼冒着生命危险,奋力托起王子的头,把他推到沙滩上,她轻轻吻了王子的额头,躲到远处的水中。王子醒了,他以为是姑娘救了他,一点也不知道小人鱼。深夜,小人鱼向着熟睡的亲人抛了1000个吻,心痛得似乎要裂成碎片,她悄悄地离去了。王子就要与心爱的姑娘结婚了,小人鱼不顾剧烈的疼痛,为他们跳起舞来,这将是她与王子在一起的最后一天了。

  • 包菜怎么做才更好吃(包菜做得更好吃的方法介绍)

    包菜怎么做才更好吃?包菜怎么做才更好吃材料:包菜一个、大葱一根、大蒜两瓣、生姜一块、干辣椒适量、醋/耗油/酱油各适量。用手将包菜撕成一块一块的,弄好之后在清水中洗净后晾干。加入包菜快速的翻炒,一定要多翻炒,不然锅边上的很容易就变糊了,到时候就不好吃了,这时候可加入适量的盐会更加的入味。继续翻炒,感觉包菜七分熟的时候就加入刚刚调好的汁水,继续翻炒均匀即可出锅。

  • 梅兰竹菊象征含义讲解(为什么梅兰竹菊被称为花中四君子)

    花中四君子是我国古人根据花朵的生长环境,生长特性,引申赋予他们的象征意义。它们所代表的含义也各有不同。梅花颜色红的霸气大方,香气浓郁扑鼻,花姿千娇百媚。因此古人把梅花当做自身傲骨的象征。世人也常把至交好友称为金兰之交。兰花的香味还雅称为国之香气。北宋大文豪苏轼曾说“宁可食无肉,不可居无竹”可见古人对竹的厚爱。而且竹四季常青,迎风不倒给人以自由、洒脱、坦荡之意。

  • 翼装飞行是谁发明的(翼装飞行发明者简述)

    以下内容希望对你有帮助!翼装飞行是谁发明的现代翼装的创始人卡尔·波内什,在1984年的一次飞行中因失误而摔死。翼装飞行又叫近距离天际滑翔运动,是指穿着翼装的飞行者从高楼、高塔、大桥、悬崖、直升机等高处跳下,在空中进行无动力飞行的运动。一般情况下,飞行者的降落高度有限,需要在短时间内调整姿势和打开降落伞包。因此,翼装飞行具有极大的挑战性和冒险性,被人们称为“世界极限运动之最”。

  • 山货什么意思(山货的意思)

    接下来我们就一起去研究一下吧!山货什么意思山货,一般是指生长在山上,野生的没经过人工培植或养殖的可食用的动植物,比如野菜、野果、菌类、山鸡、野兔、等等。后来引申到从农村带到城市里来的一些土特产,药材,水果,香料,食物一类的东西。

  • 怎么考中药调剂员证书(中药调剂员资格证证书怎么考)

    怎么考中药调剂员证书中药调剂员证书分为:初级、中级、高级三个等级,由中国职业技能鉴定中心统一签发,全国通用,高于一般上岗证。考试分理论考试与实际操作两个部分,其中理论考试采取闭卷笔试,实际操作以考生现场区分中药,按量抓药等操作为主。