我听说有些开发人员在嵌入式系统中使用汇编语言。
我想知道他们学习汇编语言和使用汇编语言的领域有什么优点。
你有经验吗?答案 0 :(得分:2)
对汇编代码的需求与缺少特定编译器支持成正比。
嵌入式系统是根据特定需求量身定制的,例如德州仪器DSP拥有一些异国情调的产品。地址模式,如circular and bit reversing addressing modes,不存在于其他架构中 C语言无法以标准方式解决所有这些差异。
然而,C标准并不禁止供应商扩展,而针对特定环境的编译器带有内置功能,目的是暴露一些低级功能。这些函数称为内在函数,是非标准保留关键字,它们以下划线开头。
例如,TMSxC6000 Optimization Manual列出 7.5.4 的内在函数
在DSP中完成的一个非常常见的操作是饱和加法,其中 n 位字(2 n - 1)+ 1 = 2 n - 1,而不是(2 n - 1)+ 1 = 0,用于通常的模块化添加。
在TI C方言中,这转换为
int x1, x2, y;
y = _sadd(x1, x2); //_sadd mimics the name of sadd assembly instruction
有了适当的内在函数,你可以完全避免使用汇编语言。
但至少有三个情况仍需要汇编语言:
没有足够的内在函数。
程序员被迫退回到组装。
众所周知,编译器在优化代码方面尤其糟糕,而您希望自己编写关键部分。
在走这条路之前至少考虑三次。