各位帮帮忙,《Windows环境下的32位汇编语言程序设计》的编程环境怎么搭建????????

时间:2021-03-25 04:52:49
我现在自学着罗云彬的《Windows环境下的32位汇编语言程序设计》,但我按照他书本上写的步骤搭建编程环境,可是到最好老是得不出*.exe文件,搭建那个环境太麻烦了。到最好总是说makefile找不到目标文件。真不知怎么弄,哪个文件放在哪个位置把我弄得头晕眼花。在些希望各位牛人帮帮忙,指点一下各个步骤,在这先谢谢了!!!!!!!!

27 个解决方案

#1


把罗云彬的源程序COPY到当前目录中.

先设置环境变量的处理文件:
@echo off
set include=e:\masm32\Include
set lib=e:\masm32\lib
set path=e:\masm32\bin;%path%
echo on
在虚拟模式下:
E:\masm32>var

E:\masm32>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Administrator\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=97464429C07C422
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
include=e:\masm32\Include
lib=e:\masm32\lib
LOGONSERVER=\\97464429C07C422
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=e:\masm32\bin;e:\masm32\bin;e:\Masm32\bin\Bin;e:\Masm32\bin;e:\masm
:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\
nologies\ATI Control Panel;C:\Program Files\Common Files\Thunder Network
Codecs
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=97464429C07C422
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWS
验证下是否正确.
最后并键入NMAKE汇编:
E:\masm32\Chapter02\Test>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

'Test.exe' is up-to-date

E:\masm32\Chapter02\Test>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        Link /subsystem:windows Test.obj Test.res
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.





#2


根据安装路径设置path、include、lib三个环境变量。

#3


用 masmplus 吧,后面明白了再自己弄一下

#4


呵呵呵....谢谢楼上的推荐,那个软件很不错!!!不过,对于罗云彬的方法,我用时最好总得出这样的一个提示:NMAKE:fatal error U1064:MAKEFILE not found and no target specified
Stop.
好像是我的那个makefile 放错地方了,因些我还是想知道错在哪里,文件的位置应怎么放,谢谢!!

#5


NMAKE:fatal error U1064:MAKEFILE not found and no target specified ;
       NMAKE :致命错误U1064 : Makefile中没有发现任何目标指明的文件。

假设原文件存放在E盘上的MASM32目录中,在虚拟X86模式下键入:E:\masm32\Chapter02\Test>nmake就开始汇编了.

#6


用radasm

#7


楼上,好像不太行哦,得里面本来有个*.exe才行的!

#8


把那个*.EXE删除掉,然后再重新汇编.

#9


用记事本就可以了,或者好点的用ultraeditor 或source insight
它是基于命令行的开发,不必什么豪华的IDE

#10


试过了,没有哪个*.exe的话不行,它显示:‘test'不是内部或外部命令,也不是可运行的程序或批处理文件。怎么办?哪出错了?

#11


直接用radasm这个集成环境,罗云斌的那个太麻烦了,不过也有用

#12


你就按书上说的一步一步搭建就行了。
建个批处理文件:
@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
每次nmake之前运行一下这个批处理,直接改环境变量也行。
makefile和要编译的文件放在一起。。
另外注意bin文件夹下的ML.err文件做好备份,总是莫名其妙的消失,可能是被优化大师删了吧。。。。

#13


TASM.也可以。。。

#14


我的错误也是这样也是不行 ,还是出现这样的错误
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.

#15


希望有个明确的答案,再请问一下nmake.exe 这个文件随便下一个都可以吗 我的运行显示下面的信息:
Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.
大家看看有问题吗 ?

#16


缺少一个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

#17


你不用 Makefile 不就得了
直接命令行编译

ml /c /coff 1.asm
link /subsystem:windows 1.obj

#18


楼上正解!!!!!!!不用makefile, 还得自己写makefile多麻烦啊!!!!!!我们写的都是小程序,不需要用nmake工具维护!!!!!!!!!!

#19


个人觉得还是用RADASM比较好,MASM6.0作为编译器,加上OD调试器,不过OD很难上手

#20


汇编可视化IDE:MASMPlus,网上有下载.
楼主缺的是nmake.exe文件. 现在下来放到mams32安装目录的bin文件夹下.

执行书中实例时.先执行自带光盘下的var.bat文件.(注意:文件中的masm32安装目录要修改成你自己机器上的的安装目录.)

最后 E:\masm32\Chapter02\Test>nmake 就ok了.

#21


用radasm就好了啊

#22


引用 8 楼 baynpu 的回复:
把那个*.EXE删除掉,然后再重新汇编.

好像覆盖也行,只要你当前没有运行那个可执行文件就好。

#23


下一个RADASM,装上去,RADASM也很好用啊。

#24


没有可用分了,不让开贴,搭车问个问题,见谅,谢谢

masm里面.data段内定义的变量在内存中的地址是连续的吗?

比如
.data

data1 dw 1,2,3,4
data2 dw 5,6,7,8

是不是data1+4 跟data2都是5?

#25


书上说“键入x:以及 cd \Source\Test切换到要工作的目录中”,你可能是把Chapter02整个文件夹都复制到Source下了;所以需要键入 cd \Source\Chapter02\Test ;然后再键入nmake;其他没有什么问题,照着做就行了!

#26


引用 3 楼 zoologist 的回复:
用 masmplus 吧,后面明白了再自己弄一下

纯汇编写的一个编译器,很不错。界面很友好。推荐一下

#27


该回复于2010-10-22 15:16:49被版主删除

#1


把罗云彬的源程序COPY到当前目录中.

先设置环境变量的处理文件:
@echo off
set include=e:\masm32\Include
set lib=e:\masm32\lib
set path=e:\masm32\bin;%path%
echo on
在虚拟模式下:
E:\masm32>var

E:\masm32>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Administrator\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=97464429C07C422
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
include=e:\masm32\Include
lib=e:\masm32\lib
LOGONSERVER=\\97464429C07C422
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=e:\masm32\bin;e:\masm32\bin;e:\Masm32\bin\Bin;e:\Masm32\bin;e:\masm
:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\
nologies\ATI Control Panel;C:\Program Files\Common Files\Thunder Network
Codecs
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=97464429C07C422
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWS
验证下是否正确.
最后并键入NMAKE汇编:
E:\masm32\Chapter02\Test>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

'Test.exe' is up-to-date

E:\masm32\Chapter02\Test>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        Link /subsystem:windows Test.obj Test.res
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.





#2


根据安装路径设置path、include、lib三个环境变量。

#3


用 masmplus 吧,后面明白了再自己弄一下

#4


呵呵呵....谢谢楼上的推荐,那个软件很不错!!!不过,对于罗云彬的方法,我用时最好总得出这样的一个提示:NMAKE:fatal error U1064:MAKEFILE not found and no target specified
Stop.
好像是我的那个makefile 放错地方了,因些我还是想知道错在哪里,文件的位置应怎么放,谢谢!!

#5


NMAKE:fatal error U1064:MAKEFILE not found and no target specified ;
       NMAKE :致命错误U1064 : Makefile中没有发现任何目标指明的文件。

假设原文件存放在E盘上的MASM32目录中,在虚拟X86模式下键入:E:\masm32\Chapter02\Test>nmake就开始汇编了.

#6


用radasm

#7


楼上,好像不太行哦,得里面本来有个*.exe才行的!

#8


把那个*.EXE删除掉,然后再重新汇编.

#9


用记事本就可以了,或者好点的用ultraeditor 或source insight
它是基于命令行的开发,不必什么豪华的IDE

#10


试过了,没有哪个*.exe的话不行,它显示:‘test'不是内部或外部命令,也不是可运行的程序或批处理文件。怎么办?哪出错了?

#11


直接用radasm这个集成环境,罗云斌的那个太麻烦了,不过也有用

#12


你就按书上说的一步一步搭建就行了。
建个批处理文件:
@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
每次nmake之前运行一下这个批处理,直接改环境变量也行。
makefile和要编译的文件放在一起。。
另外注意bin文件夹下的ML.err文件做好备份,总是莫名其妙的消失,可能是被优化大师删了吧。。。。

#13


TASM.也可以。。。

#14


我的错误也是这样也是不行 ,还是出现这样的错误
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.

#15


希望有个明确的答案,再请问一下nmake.exe 这个文件随便下一个都可以吗 我的运行显示下面的信息:
Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.
大家看看有问题吗 ?

#16


缺少一个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

#17


你不用 Makefile 不就得了
直接命令行编译

ml /c /coff 1.asm
link /subsystem:windows 1.obj

#18


楼上正解!!!!!!!不用makefile, 还得自己写makefile多麻烦啊!!!!!!我们写的都是小程序,不需要用nmake工具维护!!!!!!!!!!

#19


个人觉得还是用RADASM比较好,MASM6.0作为编译器,加上OD调试器,不过OD很难上手

#20


汇编可视化IDE:MASMPlus,网上有下载.
楼主缺的是nmake.exe文件. 现在下来放到mams32安装目录的bin文件夹下.

执行书中实例时.先执行自带光盘下的var.bat文件.(注意:文件中的masm32安装目录要修改成你自己机器上的的安装目录.)

最后 E:\masm32\Chapter02\Test>nmake 就ok了.

#21


用radasm就好了啊

#22


引用 8 楼 baynpu 的回复:
把那个*.EXE删除掉,然后再重新汇编.

好像覆盖也行,只要你当前没有运行那个可执行文件就好。

#23


下一个RADASM,装上去,RADASM也很好用啊。

#24


没有可用分了,不让开贴,搭车问个问题,见谅,谢谢

masm里面.data段内定义的变量在内存中的地址是连续的吗?

比如
.data

data1 dw 1,2,3,4
data2 dw 5,6,7,8

是不是data1+4 跟data2都是5?

#25


书上说“键入x:以及 cd \Source\Test切换到要工作的目录中”,你可能是把Chapter02整个文件夹都复制到Source下了;所以需要键入 cd \Source\Chapter02\Test ;然后再键入nmake;其他没有什么问题,照着做就行了!

#26


引用 3 楼 zoologist 的回复:
用 masmplus 吧,后面明白了再自己弄一下

纯汇编写的一个编译器,很不错。界面很友好。推荐一下

#27


该回复于2010-10-22 15:16:49被版主删除