正在阅读:DLL中调用约定和名称修饰(一)DLL中调用约定和名称修饰(一)

2004-03-04 10:28 出处:CSDN 作者:rivershan 责任编辑:linjixiong

  sub esp,40h

  push ebx

  push esi

  push edi

  lea edi,[ebp-40h]

  mov ecx,10h

  mov eax,0CCCCCCCCh

  rep stos dword ptr [edi]

  ;return (a + b);

  mov eax,dword ptr [ebp+8]

  add eax,dword ptr [ebp+0Ch]

  pop edi

  pop esi

  pop ebx

  mov esp,ebp

  pop ebp

  ret 8 ;清栈

  3、__fastcall

  __fastcall约定用于对性能要求非常高的场合。__fastcall约定将函数的从左边开始的两个大小不大于4个字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的堆栈。__fastcall可以写成_fastcall。

  依旧是相类似的例子,此时函数调用约定为__fastcall,函数参数个数增加2个:

  int __fastcall Add(int a, double b, int c, int d)

  {

  return (a + b + c + d);

  }




察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品