Microsoft x86-64调用约定中需要保留哪些寄存器?

时间:2014-01-02 19:05:48

标签: assembly x86-64

我似乎无法找到x86-64微软调用约定中需要保留的寄存器。我理解前4个参数在rcx / rdx / r8 / r9中(假设非浮点数)。但是我需要保留哪些其他寄存器/如果有的话?

例如在CDECL中,我必须保留EBX / EDI / ESI。在x86-64中有没有这样的概念,或者我可以简单地使用任何可用的寄存器吗?

x86-64 Microsoft是一种与x86-64 ABI不同的调用约定

感谢

1 个答案:

答案 0 :(得分:0)

这个答案由harold作为评论提供,但在此处移动,以便我将其标记为答案:

http://msdn.microsoft.com/en-us/library/9z1stfyw.aspx