Intel x86_64汇编函数调用约定(linux,windows),堆栈参数,堆栈操作

时间:2016-06-19 08:59:38

标签: nasm x86-64 intel masm calling-convention

我从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

在我的汇编函数开始?(当然在结束时将其反转)。

0 个答案:

没有答案