97函数调用的约定

Posted 随意就好欧巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了97函数调用的约定相关的知识,希望对你有一定的参考价值。

复制文件  fopen
重命名
删除文件

remove   删除文件

 

#include<stdio.h>
#include<stdlib.h>
void main(){
remove("1.txt");
system("pause");
}

 


rename  重命名

 

#include<stdio.h>
#include<stdlib.h>
void main(){
rename("1.txt","2.txt");
system("pause");
}

 


我们刚开始学习C语言的时候,通过给大家反汇编.
我们知道参数可以通过寄存器传递,也可以通过栈,还可以混合使用.

 调用约定  压栈顺序  平衡堆栈
 __cdecl  右->左  调用者清理栈  外平栈
 __stdcall  右->左  自身清理栈     内平栈
 __fastcall  ECX/EDX传送前两个,剩下的右到左  自身清理栈     内平栈


返回值都是EAX

调用约定,是给编译器看的,通过编译器生成的汇编代码是什么样子的.
1.怎么样传递参数.
2.怎么样平衡堆栈.

上面几种只是常见的,如果我们经常写完代码,反汇编看的话,有时候会发现调用约定不是以上的任何一种.

以上是关于97函数调用的约定的主要内容,如果未能解决你的问题,请参考以下文章

《逆向工程核心原理》读书笔记——第10章 函数调用约定

函数调用约定

C/C++函数的调用约定详解

C语言函数调用约定

C/C++学习笔记 关于调用约定

《逆向工程核心原理》--- 函数调用约定