代码改变世界

今天开始第一次win32汇编之旅 先搭建编程环境吧

2011-06-11 09:25  李龙江  阅读(741)  评论(0编辑  收藏  举报

编译环境选择的是罗云斌推荐的MASM32下载地址:http://www.masm32.com/masmdl.htm

其他很多工具在看雪学院直接可以下到所以不提供具体工具下载方式了,直接提供下载地址:http://www.pediy.com/tools.htm

首先设置系统path 增加 masm32 bin目录 如C:\masm32\bin

编辑环境是editplus 下载地址:http://www.editplus.com/index.html

EditPlus asm语法高亮文件
    下载地址:http://www.editplus.com/others.html    直接下载地址:MASM 6.15 stx - 吴文希 (2007-10-12) 就看到这个是最新的所以下载这个了

语法高亮很容易配置,只需要下载好stx文件放到程序文件夹,选择第五步的按钮选择即可,注意第四步写上文件扩展名,不然不能高亮

下边是快捷工具的配置

用MASM编译和链接一个Win32汇编源程序常用的命令是:
编译:ml /c /coff program.asm

连接: link /subsystem:windows xx.obj yy.lib zz.res (普通PE文件)
    link /subsystem:console xx.obj yy.lib zz.res (控制台文件)
    link /subsystem:windows /dll /def:aa.def xx.obj yy.lib zz.res (DLL文件)

link命令参数有不确定性,比如需要使用.lib文件所以不知道怎么配置,暂时手动输入吧,呵呵,配置好的如图

现在开始经典的hello world测试一下环境

View Code
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive

include windows.
inc
include masm32.
inc
include user32.
inc
include kernel32.
inc

includelib masm32.lib
includelib user32.lib
includelib kernel32.lib


.data
szCaption db
"A MessageBox !",0
szText db
"Hello,World !",0


.code

start:
invoke MessageBox,NULL,offset szText,\
offset szCaption,MB_OK
invoke ExitProcess,NULL

end start

提示不能打开windows.inc,原来忘了设置告诉编译器上哪找头文件、库文件了

我是设置的用户变量反正就我一个人用,就不设置系统变量了,新建一下变量

变量名:include 变量值:C:\masm32\include  这是是masm32的头文件

变量名:lib 变量值:C:\masm32\lib  这是是masm32的库文件

变量名:PATH 变量值:C:\masm32\bin;%path%  这是是masm32的库文件 系统因为变量中增加了bin目录,所以我就删除了系统变量的那个

现在终于可以编译完成了,左侧出现了obj文件了,obj 文件目 标 文 件 ,一 般 是 程 序 编 译 后 的 二 进 制 文 件 ,在 通 过 链 接 器 和 资 源 文 件 链 接 就 成 exe 文 件 了。 OBJ 只 给 出 了 程 序 的 相 对 地 址 , 而 EXE 是 绝 对 地 址 。如果没有看到,那么记得点右键刷新一下

产生了obj文件就需要连接生成exe文件了

进入cmd,进入程序代码产生obj的目录

输入link /subsystem:windows Noname1.obj 命令格式记得往上翻下

完成后可以输入dir /w看看已经产生了exe程序了,哈哈,赶快运行看看啥样子

出来了,高兴的有点早了万里长征才走完第一步,因为现在只是搭建开发环境而已,继续努力