MASM32 v11 汇编、连接及运行程序的方法

MASM32自带一个Quick Editor的编辑器,位于masm32目录下,名为qeditor.exe。
作为一个IDE,Quick Editor让我们很方便地在其中进行编辑源码,连接并运行程序。
注意:尽管Quick Editor支持拖放操作,但不推荐这样做。因为这种作法不能使QuickEditor自动地将当前目录设为所打开文件所在的目录,其结果,就是在连接时,提示找不到.obj文件。正确的作法是,先运行QuickEditor,再通过菜单File->Open打开相应的源码。
在Quick Editor修改代码后,一定要记得先存盘,才编译及连接。否则,所生成的执行文件还依旧是未保存之前的旧版本。
 


新建一个文件夹HelloWorld,打开QuickEditor,输入下面的源码,并将其存至HelloWorld文件夹中,名为“HelloWorld.asm”。
 
; HelloWorld.asm
 
comment * ----------------------------------------------
                The First Assemble Application
               ---------------------------------------------- *
 
    .386
    .model flat,stdcall
    optioncasemap:none
 
include \masm32\include\windows.inc
 
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
 
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
 
    .data
szCaption   db 'SystemInformation', 0
szText     db 'Hello, World!', 0
 
    .code
start:
    invokeMessageBox,\    ; 调用函数名
       NULL,\                     ; 父窗口句柄
       offsetszText,\          ; 文字
       offsetszCaption,\     ; 标题
       MB_OK                   ; 按钮类型
       
    invokeExitProcess, NULL
end start
 
代码中,“\masm32\include\”及“\masm32\lib\”分别限定了QuickEditor所能识别的包含文件及库文件的路径。这样,即使我们没有在操作系统的环境变量中设置相应的路径,QuickEditor也能找到这些文件。
 
下面是汇编、连接及运行程序的方法。
Quick Editor的菜单Project->Assemble ASMfile,可汇编源码,并生成HelloWorld.obj文件。Project->Link OBJFile连接obj文件,并生成HelloWorld.exe文件。Project->Assemble& Link则是上面两步的组合。Project->ConsoleAssemble &Link是在控制台下进行汇编及连接。其结果是,在运行程序时,先打开一个控制台,再由控制台来负责装载及运行程序。也就是说,控制台是程序运行的平台。如果关闭控制台,则程序也被自动地关闭了。
这里选择Assemble & Link,生成可执行文件。然后点击工具栏上的“RunProgram”图标,弹出“Run Program or HelpFile”窗口,选择生成的HelloWorld.exe文件,点击“打开”按钮,将弹出一个窗口,显示“Hello,World!”。这就是我们的第一个Win32汇编程序!
 
VisualC++下的一个类似于此的Win32应用,其.exe文件约150KB。而我们这个HelloWorld.exe有多大?2.50KB,是前者的1/60。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值