C++反汇编八(函数调用_Debug版本)
2012-02-16 21:25
351 查看
int x=CallFunc(2,3); 0040185B push 3 // 第二个参数3入栈 0040185D push 2 // 第一个参数2入栈 0040185F call @ILT+105(CallFunc) (0040106e) // 调用CallFunc 00401864 add esp,8 // VC编译器默认为__cdel传递方式,所以由调用者恢复堆栈 00401867 mov dword ptr [ebp-4],eax // 返回值eax放局部变量ebp-4 0040106E jmp CallFunc (004017f0) int CallFunc(int x,int y) 104: { 004017F0 push ebp // 保存当前ebp 004017F1 mov ebp,esp // 调整ebp指向当前esp,用来寻址 004017F3 sub esp,40h 004017F6 push ebx 004017F7 push esi 004017F8 push edi 004017F9 lea edi,[ebp-40h] 004017FC mov ecx,10h 00401801 mov eax,0CCCCCCCCh 00401806 rep stos dword ptr [edi] // 堆栈初始化 105: return x+y; // 堆栈中从高到低依次为参数2/参数1/返回地址/当前ebp/局部变量1/局部变量2 00401808 mov eax,dword ptr [ebp+8] // 参数1放eax 0040180B add eax,dword ptr [ebp+0Ch] // 参数2与eax相加后返回到eax中 106: } 0040180E pop edi 0040180F pop esi 00401810 pop ebx 00401811 mov esp,ebp 00401813 pop ebp 00401814 ret
相关文章推荐
- C++反汇编八(函数调用_Release版本)
- C++反汇编代码分析--函数调用
- C++反汇编代码分析--函数调用
- C++反汇编代码分析--函数调用
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
- C++反汇编代码分析--函数调用
- C++反汇编代码分析--函数调用
- C++反汇编代码分析——函数调用
- C++调用python的debug版本编译问题
- [C++反汇编] 栈帧(函数调用过程)
- C++反汇编代码分析–函数调用
- C++反汇编代码分析--函数调用
- C++反汇编代码分析–函数调用
- C++反汇编->函数调用原理
- C++反汇编代码分析--函数调用
- C++反汇编代码分析--函数调用
- MATLAB与C++/MFC混合编程;调用MATLAB函数
- 《Effect C++》学习------条款05:了解C++默默编写并调用哪些函数
- 使用C++调用 LUA 函数收藏