您的位置:首页 >> 编程开发 >> 汇编 >> 汇编实例 >> 正文
汇编实例 RSS
 

hello,world!win32汇编小程序

http://www.rdxx.com 05年04月30日 00:00 AoGo汇编小站 我要投稿

关键词: 小程序 , 汇编 , Win32 , 程序

首先我们看一个“复杂”的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程序!

      

--------------------------------------------------
深入分析:
    看一下源程序,有这么两行:call messageboxa\call exitprocess。大家一看都知道,这是子程序调用,但是我们并没写这样的子程序,事实上,这些是API函数。作为函数,我们在调用时可能需要传送给函数一些参数,程序怎么知道传送的参数有哪些,类型是什么呢?就是通过函数原型定义,如下所示:

9 7 3 1 2 3 4 8 :


 
 
标签: 小程序 , 汇编 , Win32 , 程序 打印本文
 
 
  相关资讯
RSS
 
无相关新闻
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站