C/C++汇编语言混合编程的情况下,一般我们都会选择C/C++来实现所期待的功能。在我们用C/C++来实现某些位操作、数学运算等功能后,编译器会尽可能地把它们编译为一些已经高度优化的汇编函数(内联函数),一般情况下是一条或者多条汇编指令的集合,在封装之后,我们可以在C/C++编程的时候直接使用这样的内联函数。如果不直接使用它们,那么在单步调试的时候,也可以从C/C++代码编译生成的汇编代码中找到对应的内联函数,能够帮助我们加深对编译和代码执行的理解。这些编译器的内联函数都有一个显著的外观,即以两个下划线作为开头,而使用方法则与C/C++编程中函数的调用形式是一样的。例如:

  long lvar;

  int ivar;

  unsigned int uivar;

  lvar = __mpyxu(ivar, uivar);

  下面我们就列举一下TMS320C28x C/C++ 编译器的内联函数。为了方便对比说明,表格并不是完全安装函数名的字母顺序来排列的。

  表1 TMS320C28x C/C++ 编译器的内联函数列表




表2 TMS320C28x C/C++ 编译器的内联函数列表-面向FPU

DSP编程技巧---C/C++与汇编语言的交互之-使用编译器的内联函数相关推荐

  1. C6000系列DSP的内联函数

    在c中,为了解决一些频繁调用的小函数大量消耗栈空间或是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数数.栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限 ...

  2. 【嵌入式】C语言高级编程-内联函数(10)

    00. 目录 文章目录 00. 目录 01. 属性声明 02. 内联函数概述 03. 内联函数与宏 04. 编译器对内联函数的处理 05. static修饰内联函数 06. 附录 01. 属性声明 a ...

  3. Matlab编程与数据类型 -- 内联函数

    本微信图文详细介绍了Matlab中的内联函数.

  4. C++编程进阶5(内联函数、如何降低编译成本、处理继承体系中同名不同参的成员函数、私有虚函数)

    十七.内联函数 在https://blog.csdn.net/Master_Cui/article/details/106391552中,已经简单的说过内联函数的作用. 函数体较小的内联函数经过编译后 ...

  5. 【编程珠玑】内联函数和宏

    一,内联函数的用法 内联函数从源码层层看,有函数的结构,而在编译后,却不具备函数的性质.编译时,类似宏替换,使用函数体替换调用处的函数名.一般在代码中用inline修饰,但是能否形成内联函数,需要看编 ...

  6. 类和对象编程(六):内联函数

    C++ 内联函数 C++ 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方. 对内联函数进行任何修改,都需要重新编译函数的所有客户端 ...

  7. C++编程思想 第1卷 第9章 内联函数 内联函数 访问器和修改器

    一些人进一步访问函数的概念分为访问器 accessor,用于从一个对象读状态 信息和 修改器 mutator 用于修改状态信息. 而且,可以用重载函数为访问器 和修改器提供相同函数名,调用函数的方式决 ...

  8. 编译指示_#pragma在DSP中的编程技巧

    转载自:https://blog.csdn.net/ranyeliang/article/details/102454462 编译指示(Pragma Directives)可能是所有的预处理指令中最复 ...

  9. ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化

    ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化 博文末尾支持二维码赞赏哦 _ 本文github 神经网络arm neon加速 ...

最新文章

  1. MapXtreme 2005 学习心得 在地图上创建点/线并显示标注(五)
  2. POJ 2828 Buy Tickets 线段树
  3. 10个不太为人所知的,但实用的PHP函数
  4. 支付系统信息流和资金流
  5. SAP ADBC和JDBC的对比
  6. MVP on Board 没用小技巧
  7. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决办法方案
  8. react 全选反选_js中怎么将createElement出来的复选框实现全选,全不选,反选效果?...
  9. 在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】
  10. 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
  11. 继承几近失传的经典吟诵-余觉中
  12. 数学公式神器【MathPix Snip】,截屏公式转为LaTeX代码
  13. 图像标记img的alt属性
  14. 线段树:你能回答这些问题吗
  15. 《故事处方》丹提w摩尔 epub+mobi+azw3
  16. 单片机实验:外部中断系统实验 如何1357,2468灯交替亮
  17. python word 表格宽度_RPA手把手——python-docx 设置 word 文档中表格格式
  18. [转|会计学习]资产盘盈、盘亏的会计处理
  19. java thread yield()_Java Thread yield()方法
  20. 深入理解Linux网路技术内幕学习笔记第四章:通知链

热门文章

  1. 测量AMS1117的输入输出特性
  2. 全国大学生智能汽车竞赛-讯飞智慧餐厅
  3. 未解决计算机主机与打印机,电脑无法与打印机连接 计算机网考题目2(12)
  4. android 中测量高度和宽度,android获得屏幕高度和宽度(display中getSize(Point)方法使用)...
  5. android 固定底部导航,Android如何实现底部菜单固定到底部
  6. python网页模板_python-找不到HTML模板
  7. linux命令grpck,不可不知的的grpck命令【每日一个知识点第184期-Linux】
  8. ceph-deploy mod add_我的世界基座(Pedestals)Mod
  9. IC/FPGA 设计资源整理推荐
  10. 初识Tcl(一):Tcl 命令