0

我可以制作一个gcc将特定函数(CC++)参数放置到特定寄存器吗?我想定义一些裸代码使用的函数原型,它利用这个寄存器,比如说,作为基础。我的意思是这样的,但针对函数参数。

4

1 回答 1

1

您不能要求将特定的函数参数放在给定的寄存器中。这是因为函数参数传递给函数的方式是由 ABI 为您的架构定义的。例如,在 x86-64 上,前 6 个(整数)参数在寄存器%rdi%rsi%rdx%rcx%r8和中传递%r9

正如您所指出的,您可以做的是使用本地寄存器 vars将特定的局部变量分配给寄存器,然后将参数复制到该局部变量中。这应该会导致参数被复制到该寄存器中。

也就是说,你为什么还要这个?

于 2013-01-08T08:19:11.847 回答