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.怎么样平衡堆栈.

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

猜你喜欢

转载自www.cnblogs.com/xiaodaxiaonao/p/9142305.html