vc 提供了一种叫做naked函数的声明。naked意思为赤裸的意思,需要程序员管理堆栈,退出时需要显示调用ret,以及平衡堆栈。
当然带来的好处是免去了编译器默认为我们做的那些不必要的工作(很多费代码)。
以下是一个简单的naked函数的例子
naked 函数默认为__cdecl调用,需要调用者平衡堆栈(如果使用call调用时)。
在调用sum函数后,需要将esp加上8(两个dword的长度)。
另外注意的是,调用C函数是,不能直接使用call printf,而需要使用 call dword ptr[printf]