图解命令行手动编译构建一个win32汇编程序

首先安装masm32 V11.0;安装完后出现下列对话框;

图没截好;下面图的 k. 是 link. ;ktopPath是DesktopPath;

此段代码的含义是用WScript创建了一个快捷方式,指向刚安装的masm32的编辑器;快捷方式位于桌面;

 

下面来手动编译一个win32 汇编程序;

先建立环境变量如下;

新建;

新建;

还有个lib变量也是新建;忘了截图;见后面代码;

Path中添加如下内容;

 

未构建之前,有四个文件;一个图标,一个makefile,一个asm文件,一个rc文件;

手动命令行构建不需要makefile;

 

首先打下图命令编译;编译之后看到obj出来了;

 

打下图命令编译资源;成功后看到rc编译后的res文件出来了;

 

再打下图命令;链接;成功后看到exe出来了;这就是手动编译构建的全过程;

 

上述相关代码来自罗云琳书中代码;

var.bat;

 

@echo off
rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
set Masm32Dir=C:\Masm32
set include=%Masm32Dir%\Include;%include%
set lib=%Masm32Dir%\lib;%lib%
set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH%
set Masm32Dir=
echo on


Test.asm

 

 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming >
; by 罗云彬, http://asm.yeah.net
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Test.asm
; 编程环境测试代码
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.386
		.model flat,stdcall
		option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include		windows.inc
includeINCLUDE2.inc
includelINCLUDE32.lib
include		kernel32.inc
includINCLUDErnel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.data

szCaption	db	'恭喜',0
szText		db	'当您看到这个信息的DB,您已经可以编译Win32汇编程序了!DB0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.code
start:
		invoke	MessageBox,NULL,offset szText,offset szCaption,MB_OK
		invoke	ExitProcess,NUOFFSET>>>>>>>>OFFSET>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		end	start
END


Test.rc

 

1        icon    "Main.ico"

 

Makefile

 

EXE = Test.exe		#指定输出文件
OBJS = Test.obj		#需要的目标文件
RES = Test.res		#需要的资源文件

LINK_FLAG = /subsystem:windows	#连接选项
ML_FLAG = /c /coff		#编译选项

$(EXE): $(OBJS) $(RES)
	Link $(LINK_FLAG) $(OBJS) $(RES)

.asm.obj:
	ml $(ML_FLAG) $<
.rc.res:
	rc $<

clean:
	del *.obj
	del *.res


看下Makefile,makefile执行完后,会删除obj和res文件;而前面手动构建的情况,这两个文件还在;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值