添加四個以上的PARAMS我有C++文件和文件.ASM如圖所示below.Am嘗試添加所有PARAMS我在求和函數傳遞在大會
summation(int a ,int b ,int c ,int d, int e,int f)
C++文件看起來是這樣的:
#include <iostream>
#include <conio.h>
#include<stdlib.h>
using namespace std;
extern "C" int summation(int a ,int b ,int c ,int d, int e,int f);
int main(){
cout << "Summation : "<<summation(1,2,7,1,8,10)<<endl;
return 0;
}
和ASM文件是這樣的:
.code
summation proc
sub rsp,30h
mov eax,ecx
add eax,edx
add eax,r8d
add eax,r9d
add eax,dword ptr [rsp+20h]
add eax,dword ptr [rsp+28h]
add rsp,30h
ret
summation endp
end
擁有這些代碼的結果總是22(應該是29)。我的代碼有什麼問題?
你使用,你可以使用十進制fastcall,它不會處理超過4個。其餘的被壓入堆棧。 – ScarletAmaranth
所以我怎麼處理他們(推入堆棧)? @ScarletAmaranth – 105tNoMatter
爲什麼不讓一個64位C編譯器告訴你答案? –