我創建具有以下簽名的函數任意號碼:的彙編參數(X86,ATT)
int function_test (char *something, ...);
讓我們假設在*的東西有什麼東西,讓我知道有多少參數爲通過(就像printf與'%'一樣)。
所以我存儲在%ebx
當前參數號爲4的倍數,從8日開始,這樣我就可以得到8(%ebp)
,12(%ebp)
等
我如何做才能得到該參數的內容?當我嘗試時:
movl %ebx(%ebp),variable
我收到一個錯誤(junk %ebp after register
)。
如何獲取該參數的內容?那麼增加其價值的語法是什麼?
您應該使用Google的「x86尋址模式」,具體是AT&T的語法。我認爲你可以用'(%ebx,%ebp)'做一些事情,但可能不是直接給'變量'(需要另一個寄存器)。 – lurker