的論點我有簽名的函數:檢索64 MASM裝配過程
extern "C" int foo(int a, int b, int c, int d, int e);
這實際上是彙編語言編寫的。
隨着毫升(32位),使用標準調用約定你幾乎可以寫
.code
foo PROC a: DWORD, b: DWORD ,c: DWORD, d: DWORD, e: DWORD
mov eax, d
mov ebx, e
,並開始使用這些標籤來訪問你的論點
隨着ml64(64位)的快速調用是隻有約定可用。我沒有問題訪問存儲在寄存器中的第一個論據,但問題來訪問那些在堆棧(e
在這個例子中):我想
.code
foo PROC a: DWORD, b: DWORD ,c: DWORD, d: DWORD, e: DWORD
和
.code
foo PROC e: DWORD
但在價值e
是垃圾。
我發現如果直接使用堆棧地址,我會找到該值。
.code
foo PROC e: DWORD
mov eax, r9 ; d
mov ebx, DWORD PTR[rbp + 48] ; e
有另一種方式?