32位汇编的基本框架

整理了一下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,Win32!',0
.CODE
;此处可以进行函数声明 方法:Asm_1 proto  参数1:大小(比如dword),参数2:dword             ;参数可省略


Asm_1 PROC                                ;函数的实现
  push   ebp
  mov    ebp,esp
  sub    esp,40h
  push   ebx
  push   esi
  push   edi
  invoke MessageBoxA,NULL,addr szText,addr szCaption,MB_OK   
  pop    edi
  pop    esi
  pop    ebx
  add    esp,40h
  pop    ebp
ret
Asm_1 ENDP


END                                             ;代码段结束

你可能感兴趣的:(汇编)