例如。linux内核:

linkage.h    arch\x86\include\asm    581    2/20/2019

#ifdef CONFIG_X86_32
#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
#endif /* CONFIG_X86_32 */

注释:这个标志符和函数声明放在一起,带regparm(0)的属性声明告诉gcc编译器,该函数不需要通过任何寄存器来传递参数,参数只是通过堆栈来传递。gcc编译器在汇编过程中调用c语言函数时传递参数有两种方法:一种是通过堆栈,另一种是通过寄存器。

缺省时采用寄存器,假如你要在你的汇编过程中调用c语言函数,并且想通过堆栈传递参数,你定义的 c 函数时要在函数前加上宏asmlinkage。

推荐阅读:https://mp.weixin.qq.com/s/6KyYo7tGpWEs9SilZNUy0g

__attribute__((regparm(number))):函数通过number个寄存器传递参数,否则通过堆栈相关推荐

  1. python中number函数_python-1:Number数字类型 之三 相关函数 Fraction

    fractions模块 fractions模块提供了分数类型的支持. Fraction类 该类是fractions模块的核心,它继承了numbers.Rational类并且实现了该类所有的方法. 构造 ...

  2. 【汇编综合应用】大小写字母的转换、2号、9号和10号DOS系统功能调用、分支、循环程序结构、子程序、寄存器传递参数,宏定义、宏调用,观察宏展开。

    实验内容 编程实现:用10号DOS功能调用从键盘输入一串大小写字母到BUF为首址的缓冲区中,然后将其中的小写字母换成大写字母,原大写字母不变,仍然放入本缓冲区,再将该字符串内容在显示器上显示,且以十六 ...

  3. 汇编调用C函数--利用堆栈传递参数

    汇编:EXPORT F i EQU 5AREA F,CODE,READONLYIMPORT g ;使用伪操作IMPORT声明C函数g()ENTRYSTR LR,[SP,#-4]! ;保存返回地址MOV ...

  4. 以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值。

    以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值: Sub Example()Dim x As Integer, y As Integerx ...

  5. JavaScript中的parseInt和Number函数

    函数作用: parseInt将字符串(String)类型转为整数类型. Number() 函数把对象(Object)的值转换为数字. 语法不同: parseInt(string, [radix]) s ...

  6. Number()函数转换‘单个数值的数组‘为何是数字?【JavaScript】

    Number()函数转换'单个数值的数组'为何是数字?[JavaScript] 1.Number() 熟悉Number()函数的同学可跳过项 使用Number函数,可以将任意类型的值转化成数值. 原始 ...

  7. Number()函数

    定义和用法 Number() 函数把对象的值转换为数字. 语法 Number(object) 参数 描述 object 必需.JavaScript 对象. 返回值 如果参数是 Date 对象,Numb ...

  8. Pytorch--Numpy--Random中的随机种子函数: seed(number)用法总结

    保持随机初始化的一致性 -- 随机种子函数seed torch 和numpy中随机初始化的一致性 torch.manual_seed(number) torch.cuda.manual_seed(nu ...

  9. Power Query M语言所有Number函数,分类汇总掌握

    一.通过帮助找出所有的Number函数 通过在查询编辑输入"=#shared"调出帮助,然后提取列,筛选出所有的Number类函数 二.全部Number函数分类汇总 Number函 ...

最新文章

  1. 链表问题9——复制含有随机指针节点的链表(初阶)
  2. 对ActiveRecord的评论
  3. 由JS函数返回值引发的一场”血案
  4. 视频转码能力哪家强?腾讯云、阿里云、七牛云多维度对比
  5. 情人节,你们的CEO都在干嘛?
  6. 发消息给非windows窗体程序
  7. 计算机辅助设计还需要手绘吗,西安电脑如此发达为什么还要学习手绘
  8. BBV:实验基本块向量生成工具
  9. QR code 二维码基础入门教程(二)
  10. 将一个字符类型转换为字符串类型
  11. C++判断一个序列是否为堆(最大堆、最小堆)
  12. @bean 什么时候执行_离婚冷静期什么时候开始执行?
  13. c语言如何删除链表相同元素,【图片】想问一道链表题,如何删除重复元素【c语言吧】_百度贴吧...
  14. 机器学习基石 作业四
  15. 使用PDF24 将mathmatica 的.nb文件转化为PDF文档
  16. 正在解析主机/打开网页慢,有可能是你的虚拟机网卡的问题
  17. 推广如何做网上引流?教你引流的底层逻辑
  18. import cv2 报错(linux环境)ImportError: libGL.so.1: cannot open shared object file: No such file or direc
  19. wfGo 围棋 单人打谱模式
  20. 【写在中秋时刻】硬件冷钱包、软件冷钱包、多签(Multisig)钱包多视角比较分析

热门文章

  1. eclipse新建maven报错
  2. Android开发的体会
  3. 打油诗 看《大上海》
  4. 【转】MS-DOS下怎样使用解压缩共具
  5. c++相对路径怎么判断_不可思议!C罗无球跑位分析
  6. java有道翻译_Java 调用 有道翻译API
  7. python 菜单 阻塞 其它程序_Python subprocess.call阻塞
  8. idea卸载不干净怎么办_家里拖地老是不干净怎么办,来跟我学!
  9. c语言十几行编译出上百k,二级C语言上机编程题技巧总结选读.doc
  10. html表白特效源代码_程序员如何在七夕节表白