整理了一下32位汇编的基本框架,具体如下:
.386 ;指定编译器程序是使用80386指令集编写的 还有.486/.586
.MODEL FLAT,C,fastcall ;.MODEL用来指定内存模型 Win32位下只有FLAT内存模型即平坦的访问,从0到4GB随意不分段访问 fastcall告诉编译器参数的传递约定(包括传参顺序和由谁恢复堆栈)
option casemap:none ;区别大小写
include user32.inc ;包含伪指令include语句
include windows.inc ;所有的Windows数据结构定义和常量定义包含在windows.inc中
……
.DATA ;定义已初始化的数据
.DATA? ;定义未初始化的数据
one db ?
s db 30 dup(0) ;定义了一个30个字节的s变量,初始化为0
.CONST ;定义常量数据
szCaption db 'MessageBox!',0 ;字符串后面加,0 相当于/0
szText db 'Welcome,Win3
.386 ;指定编译器程序是使用80386指令集编写的 还有.486/.586
.MODEL FLAT,C,fastcall ;.MODEL用来指定内存模型 Win32位下只有FLAT内存模型即平坦的访问,从0到4GB随意不分段访问 fastcall告诉编译器参数的传递约定(包括传参顺序和由谁恢复堆栈)
option casemap:none ;区别大小写
include user32.inc ;包含伪指令include语句
include windows.inc ;所有的Windows数据结构定义和常量定义包含在windows.inc中
……
.DATA ;定义已初始化的数据
.DATA? ;定义未初始化的数据
one db ?
s db 30 dup(0) ;定义了一个30个字节的s变量,初始化为0
.CONST ;定义常量数据
szCaption db 'MessageBox!',0 ;字符串后面加,0 相当于/0
szText db 'Welcome,Win3