我从C(单独的asm文件)调用汇编函数,并将6个指针参数传递给它。
在Linux中(使用Nasm)调用约定是:rdi,rsi,rdx,rcx,r8,r9和rest on stack。 在Windows中(使用Masm),调用约定是:rcx,rdx,r8,r9,并在堆栈上休息。
如何在两个平台上的堆栈参数上解决其余问题? 我读了64 abi和microsoft msdn,但我看不清楚如何使用这个参数,所有的尝试最终都出现了分段错误。
另一个问题是:MASM中是否有必要这样做:
push rbp
mov rbp, rsp
在我的汇编函数开始?(当然在结束时将其反转)。