首页
社区
课程
招聘
[求助]如何编译罗云彬的随书代码??在线等!!
发表于: 2007-7-4 22:33 5862

[求助]如何编译罗云彬的随书代码??在线等!!

2007-7-4 22:33
5862
代码如下:

文件名:TEST.ASM
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 2nd Edition>
; 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
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .const

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

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

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
环境设置:
文件名:Var.bat

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

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
makefile:
文件名: 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

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
资源文件:一个土标  Main.ico

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
资源代码:
文件名:Test.rc

1                icon        "Main.ico"

本人对Win32汇编很不熟悉!麻烦专业的朋友把这个程序的编译的详细步骤写出来!
不胜感激!!!!

谢谢了!!!

我的编译步骤:
X:\ASM\Var.bat

X:\ASM\nmake makefile

执行makefile的结果:
'makefile' is up-to-date

当前目录下并没有生成.对应的: res.obj  TEST.obj  TEST.exe等文件

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
书上有完整的测试步骤,对着书一步一步的做 会成功的。
2007-7-4 22:39
0
雪    币: 200
活跃值: (154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
使用nmake
2007-7-5 08:01
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用 masmplus可以直接编译
2007-7-5 09:21
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
5
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

呵呵,你的帖子里就有啊
2007-7-5 09:36
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我的编译步骤:
X:\ASM\Var.bat

X:\ASM\nmake makefile

执行makefile的结果:
'makefile' is up-to-date

当前目录下并没有生成.对应的: res.obj  TEST.obj  TEST.exe等文件
2007-7-5 14:15
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
问题解决:

原因:
makefile:
文件名: makefile

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

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

$(EXE): $(OBJS) $(RES)
  Link $(LINK_FLAG) /out $(EXE) $(OBJS) $(RES)    #这个地方没有/out $(EXE),呵呵罗云彬也喜欢开玩笑

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

clean:
  del *.obj
  del *.res
2007-7-5 15:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
按照书里面的介绍,建立编程环境,环境建立好了就可以编译了
2007-7-5 16:56
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
非常感谢大家的热心帮助!!!
非常感谢!!
这里我感觉到了
团结
2007-7-5 22:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
编译步骤改为:
X:\ASM\Var.bat

X:\ASM\nmake
或者
X:\ASM\Var.bat

X:\ASM\make

nmake会自己找到makefile组织编译
2007-7-5 23:22
0
游客
登录 | 注册 方可回帖
返回
//