WEB开发网
开发学院软件开发汇编语言 Win32汇编小试 阅读

Win32汇编小试

 2008-10-14 09:35:20 来源:WEB开发网   
核心提示:首先我们看一个“复杂”的Win32汇编程序程序用来显示一个消息框--;文件名:3.asm.386.model flat ,stdcallNULLequ 0MB_OK equ 0ExitProcess PROTO :DWORDMessageBoxA PROTO :DWORD,:DWORD,:DWO

首先我们看一个“复杂”的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:\masm7\lib 3.obj

第一步编译生成3.obj文件

/c 表示只编译,不链接

/coff 表示生成COFF格式的目标文件

第二步链接生成3.exe文件

/subsystem:windows 表示生成windows文件

/libpath:d:\masm7\lib 表示引入库的路径为:d:\masm7\lib。

在安装Masm32后,引入库位于Masm32\Lib目录下。

也可设置环境变量Lib的值:在dos提示符下键入Set Lib=d:\masm7\lib,这样“链接”就可简单写成:

link /subsystem:windows 3.obj,试想一下,在程序调试过程中,修改源程序是常用的事啦,每次编译链接都要带/libpath:...那该有多烦人呢。当然,我们也可在源程序中直接给出引入库的位置,这样,链接时就方便啦,如下:
 includelib d:\masm7\lib\kernel32.lib
    includelib d:\masm7\lib\user32.lib

--------------------------------------------------

执行:在dos提示符下键入3,回车,出现一个消息框,哈哈,真正的Win32程序!

--------------------------------------------------

1 2  下一页

Tags:Win 汇编 小试

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接