gpt4 book ai didi

linux - 汇编语言有什么优点吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:40 29 4
gpt4 key购买 nike

我听说一些开发人员在嵌入式系统中使用汇编语言。

我想知道他们学习汇编语言有什么好处以及什么领域使用汇编语言。

你有什么经验吗?

最佳答案

对汇编代码的需求与特定编译器支持的缺乏成正比。

嵌入式系统是根据特定需求定制的,例如德州仪器 (TI) DSP 有一些“奇特”的地址模式,例如 circular and bit reversing addressing modes其他架构中不存在这些。
C 语言无法以标准方式解决所有这些差异。

然而,C 标准并不禁止供应商扩展,并且针对特定环境的编译器带有内置函数,目的是公开一些低级功能。这些函数称为内在函数,并且是非标准保留关键字,它们以下划线开头。

例如,TMSxC6000 Optimization Manual列出 7.5.4 的内在函数。
DSP 中执行的一项非常常见的操作是饱和加法,其中在 n 位字中 (2n - 1) + 1 = 2n - 1,而不是通常模加法的 (2n - 1) + 1 = 0。
在 TI C 方言中,这翻译为

int x1, x2, y;
y = _sadd(x1, x2); //_sadd mimics the name of sadd assembly instruction

通过适当的内在函数,您可以完全避免汇编语言。

<小时/>

但是,至少在三种情况下仍然需要汇编语言:

  1. 不存在足够的内在函数。
    程序员被迫退回到汇编。

  2. 众所周知,编译器在优化代码方面特别糟糕,而您希望自己编写关键部分。
    在走这条路之前至少三思而后行。

  3. 您需要针对不同平台使用相同的 C 代码库。
    例如,Linux 内核就是这种情况,它们使用一小部分汇编来“抽象”执行环境,足以使用大部分纯 C 代码进行处理。
    通常,多样性是如此突出,以至于简单地调用内在函数是不够的,而是需要不同的管理,即抽象。

关于linux - 汇编语言有什么优点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371241/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com