Win32汇编小试2008-10-14 本站收集整理 首先我们看一个“复杂”的Win32汇编程序程序用来显示一个消息框--------------------------------------------------
;文件名:3.asm
    .386
    .model flat ,stdcall
NULL  equ 0
MB_OK  equ 0
ExitProcess PROTO :DWORD
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
includelib kernel32.lib
includelib user32.lib
    .data
szText  db "Hello, world!",0
szCaption db "Win32Asm",0
    .code
start:
    push MB_OK
    lea eax,szCaption
    push eax
    lea eax,szText
    push eax
    push NULL
    call messageboxa
    xor eax,eax
    push eax
    call exitprocess
    end start--------------------------------------------------编译链接:分下面两步进行:ml  /c /coff 3.asm link /subsystem:windows /libpath:d:masm7lib 3.obj第一步编译生成3.obj文件/c 表示只编译,不链接/coff 表示生成COFF格式的目标文件第二步链接生成3.exe文件/subsystem:windows 表示生成windows文件/libpath:d:masm7lib 表示引入库的路径为:d:masm7lib。在安装Masm32后,引入库位于Masm32Lib目录下。也可设置环境变量Lib的值:在dos提示符下键入Set Lib=d:masm7lib,这样“链接”就可简单写成:link /subsystem:windows 3.obj,试想一下,在程序调试过程中,修改源程序是常用的事啦,每次编译链接都要带/libpath:...那该有多烦人呢。当然,我们也可在源程序中直接给出引入库的位置,这样,链接时就方便啦,如下:
 includelib d:masm7libkernel32.lib
    includelib d:masm7libuser32.lib--------------------------------------------------执行:在dos提示符下键入3,回车,出现一个消息框,哈哈,真正的Win32程序!--------------------------------------------------