在汇编中调用符号时如何传递函数参数?

杰克·塞克斯顿

我在之前提出的问题中看到了此示例代码。int add(int a, int b)对esi和edi中的参数如何自动感到困惑这是默认的调用约定吗?我在哪里可以找到更多这些信息。

.globl _add // make it global so that others can find this symbol
....
_add: // int add(int a, int b)
  movl %esi, %eax
  addl %edi, %eax
  ret
杰克·塞克斯顿

Solaris,Linux,FreeBSD,OS X,[16]遵循System V AMD64 ABI的调用约定,并且是Unix和类Unix操作系统中的事实上的标准。前六个整数或指针参数在寄存器RDI,RSI,RDX,RCX(Linux内核接口中的R10 [17]:124),R8和R9中传递,而XMM0,XMM1,XMM2,XMM3,XMM4,XMM5, XMM6和XMM7用于某些浮点参数。

资料来源:https : //en.wikipedia.org/wiki/X86_calling_conventions

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

(R)传递函数时如何包含参数?

来自分类Dev

如何通过字典键值对中的参数传递函数

来自分类Dev

如何在Powershell CLI中传递函数参数?

来自分类Dev

在函数调用中传递函数的变量

来自分类Dev

在python中传递函数作为参数

来自分类Dev

传递函数是RPyC中的参数

来自分类Dev

传递函数是RPyC中的参数

来自分类Dev

在Java中调用函数时的传递参数

来自分类Dev

使用var_arg传递函数调用参数

来自分类Dev

如何通过可变数量的参数传递函数中的参数列表?

来自分类Dev

尝试在此特定的javascript函数中传递函数参数

来自分类Dev

传递函数参数时的C ++执行顺序

来自分类Dev

传递函数参数时的C ++执行顺序

来自分类Dev

在Python 3中动态传递函数中的参数

来自分类Dev

如何在Java 8中以流groupby传递函数参数

来自分类Dev

在我的ViewController中,如何传递函数作为参数并保持[弱自我]?

来自分类Dev

时变传递函数

来自分类Dev

如何传递函数作为上下文参数?

来自分类Dev

如何使用骨干JS动态传递函数的diff参数?

来自分类Dev

阅读终端参数并在Lisp中传递函数?

来自分类Dev

安全地在flutter中传递函数作为参数

来自分类Dev

在 react-native-boilerplate 中传递函数参数

来自分类Dev

使用指针参数在c中传递函数指针

来自分类Dev

传递函数而不是调用函数(Delphi)

来自分类Dev

BigInteger如何传递函数

来自分类Dev

python在函数外传递函数参数

来自分类Dev

Scala中的传递函数

来自分类Dev

在nim中传递函数

来自分类Dev

在C中传递函数还是传递函数指针?