常见函数调用约定

_cdecl

  • 传参顺序:从右到左
  • 参数栈维护:调用者

__stdcall

  • 传参顺序:从右到左
  • 参数栈维护:被调用者

__fastcall

  • 通过寄存器来传参
  • 传参顺序:优先使用ECX/EDX 寄存器传递前两个参数,剩下的采用从右到左压栈
  • 参数栈维护:被调用者

__thiscall

  • 仅用于C++成员函数
  • 传参顺序:this 指针通过 exc 寄存器,参数从右到左压栈

naked call

  • 不会在函数入口出口保存与恢复 eip 等寄存器

你可能感兴趣的:(常见函数调用约定)