2013-01-08 23 views
0

我可以做一個GCC至(çC++)參數放入所述特定功能的特定的寄存器?我想定義函數原型以供一些裸露的代碼使用,這些代碼利用這個寄存器作爲基礎。我的意思是類似this,但朝着函數參數。bind函數參數來特定寄存器

+0

您可以使用[內聯彙編](http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html)。 –

+0

但我不想使用任何包裝來調用該功能 – Orient

回答

1

您不能要求將特定的函數參數放在給定的寄存器中。這是因爲函數參數傳遞給函數的方式是由ABI爲您的架構定義的。例如,在x86-64上,前六個(整數)參數在寄存器%rdi,%rsi,%rdx,%rcx,%r8%r9中傳遞。

如你所示,你可以用local register vars來將一個特定的局部變量賦值給一個寄存器,然後將該參數複製到該局部變量中。這應該導致參數被複制到該寄存器中。

這就是說,你爲什麼要這樣做?

相關問題