Win32Asm学习笔记[不断更新]
Win32Asm程序框架:
1、Invoke
invoke ExitProcess,NULL ;检查参数
2、Call
push NULL
call ExitProcess ;不检查参数,使用前需要自己入栈,使用后需要自己恢复
add esp, 4
函数的返回值通过EAX寄存器来返回。
.386 ;告诉编译器程序所使用的指令集
.MODEL Flat, STDCALL ;内存模式只有FLAT一种,函数调用方式为STDCALL,WIN32只有这一种
.DATA ;.DATA 其中包括已初始化的数据
<Your initialized data>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.DATA? ;.DATA? 其中包括未初始化的数据。
<Your uninitialized data>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.CONST ;.CONST 其中包括常量定义。
<Your constants>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.CODE ;.CODE 这是代码"分段"。 其中代码段用Label隔开
<label>
<Your code>
..
end <label>
两种函数调用方式:.MODEL Flat, STDCALL ;内存模式只有FLAT一种,函数调用方式为STDCALL,WIN32只有这一种
.DATA ;.DATA 其中包括已初始化的数据
<Your initialized data>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.DATA? ;.DATA? 其中包括未初始化的数据。
<Your uninitialized data>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.CONST ;.CONST 其中包括常量定义。
<Your constants>
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/dot.gif)
.CODE ;.CODE 这是代码"分段"。 其中代码段用Label隔开
<label>
<Your code>
![](https://www.cnblogs.com/Images/dot.gif)
end <label>
1、Invoke
invoke ExitProcess,NULL ;检查参数
2、Call
push NULL
call ExitProcess ;不检查参数,使用前需要自己入栈,使用后需要自己恢复
add esp, 4
函数的返回值通过EAX寄存器来返回。