MASM的使用安装方法Word下载.docx
《MASM的使用安装方法Word下载.docx》由会员分享,可在线阅读,更多相关《MASM的使用安装方法Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
2.3.MASM的安装
首先从Internet下载masm60.zip,这是一个ZIP压缩文件。
可以用WINZIP或WINRAR等压缩解压软件指定一个目录将其解压,目录名例如为F:
\MASM60。
运行“命令提示符”,在解压目录中运行setup程序,开始安装MASM。
在主菜单界面选择“InstalltheMicrosoftMacroAssembler”继续。
在系统设置界面选择“DOS/Windows&
NT”操作系统继续。
选择安装Windows有关文
选择安装PWD(Programmer’sWorkBench),继续。
无须安装“Briefcompatibility”(常见编辑器兼容),继续。
选择复制微软鼠标驱动器“MicrosoftMouseDriver”,继续。
选择安装MASM工具,继续。
选择安装帮助文件,继续。
选择安装例程(sampleprogram),继续。
选择系统的安装目录,例如将系统安装在E盘。
接下来是询问各部分程序的安装目录,一般情况下由系统自行决定即可。
参数设置完毕后最后检查一次。
检查如果无需改动,则选择“NOCHANGES”开始安装。
安装完毕后系统会提示MASM6.11与5.1版本有一些区别,具体的内容可以观看安装菜单中的“SpecialNoteforMASMv5.1users”,或者编程指南中的附录A。
设置MASM的DOS操作系统环境参数需要修改autoexec.bat和config.sys两个文件,MASM提供了NEW-VARS.BAT和NEW-CONF.SYS两个文件作为参考。
如果MASM安装在Windows98/NT/2000/XP操作系统环境下,需要参考文件NEW-VARS.BAT的内容进行设置,设置方式稍后介绍。
接下来是Windows3.x操作系统环境下的设置要求。
如果MASM6.11安装在Windows3.0/3.1/3.11/3.2操作系统中,需要参考文件NEW-SYS.INI修改系统环境配置文件SYSTEM.INI。
如果MASM6.11安装在32位Windows中,无须理会NEW-SYS.INI的内容。
然后是关于PWD(Programmer’sWorkBench)的设置,安装系统会提供一个参考文件TOOL.PRE。
最后是有关内存方面的设置。
当MASM工作在非DOS环境下时,不需要理会这些方面的内容。
在安装结束前最好看一看“SpecialNoteforCodeViewusers”、“SpecialNoteforMASMv5.1users”、“README.TXT”和“PACKING.TXT”的内容。
最后再退出安装。
2.3.WIN32操作系统中MASM的环境参数设置
安装完MASM后,需要设置一下MASM的环境参数。
步骤如下:
在桌面“我的电脑”上点击鼠标右键,在弹出式菜单上选择“属性”项,在“系统属性”窗口里打开“高级”页。
点击“环境变量”按钮。
在“环境变量窗口”的系统变量列表中选择“PATH”项,再点击系统变量列表下的“编辑”按钮。
在“编辑环境变量窗口”的“变量值”栏里追加MASM的BIN、BINB、INCLUDE目录的路径参数。
例如:
当MASM安装在E:
\MASM611目录,则在“变量值”栏里追加“;
E:
\MASM611\BINR;
\MASM611\BIN”。
除此之外,还需要增加以下环境变量:
LIB=c:
MASM611\LIB
INCLUDE=c:
MASM611\INCLUDE
INIT=c:
MASM611\INIT
HELPFILES=c:
MASM611\HELP\*.HLP
ASMEX=c:
\ASM611\SAMPLES
说明:
环境参数改变后需要重新启动计算机才能生效。
有些机房在计算机中使用了磁盘保护卡,一旦重新启动所有安装的文件和设置的参数都将消失。
在这种情况下,可以在DOS命令行模式中输入一些临时命令设置MASM的环境参数。
(假设MASM安装在E:
\MASM611目录)
SETPATH=E:
E:
\MASM611\BIN;
%PATH%
SETLIB=E:
\MASM611\LIB
SETINCLUDE=E:
\MASM611\INCLUDE
SETINIT=E:
\MASM611\INIT
SETHELPFILES=E:
\MASM611\HELP\*.HLP
SETASMEX=E:
\MASM611\SAMPLES
2.4.MASM.EXE的使用
MASM.EXE用于将汇编源程序汇编成目标文件。
当MASM汇编环境参数配置好之后,在“命令提示符”窗口中键入“MASM/H”指令,将显示出MASM的使用介绍。
MASM的命令格式如下:
MASM[option...]source(.asm),[out(.obj)],[list(.lst)],[cref(.crf)][;
]
可选部分是MASM的各种汇编参数。
source(.asm)指定汇编源文件的名称,缺省的扩展名是ASM。
out(.obj)指定输出的目标代码文件。
缺省的文件名与汇编源文件相同,扩展名改为OBJ。
list(.lst)指定输出的列表文件,缺省的扩展名是LST。
缺省情况下MASM不生成列表文件。
cref(.crf)指定输出的交叉参考文件,缺省的扩展名是CRF。
缺省情况下MASM不生成交叉参考文件,交叉参考文件的后缀为SBR。
最后的分号表示其后的项目按缺省情况处理。
以下就各个汇编参数逐个加以说明。
参数名
作用
/C
生成交叉参考文件
/D<
sym>
[=<
val>
定义一个符号sym并对其赋值val
/E
模拟浮点运算指令和IEEE格式
/H
显示MASM的使用帮助
/HELP
/I<
path>
寻找引入文件(INC)的目录
/L
生成列表文件
/La
生成全部列表文件
/ML
区分所有标识符号的大小写
/MU
将全局标识符号转换为大写
/MX
区分全局标识符号的大小写
/N
隐藏列表文件中的符号表
/T
隐藏成功汇编时的显示消息
/W[0/1/2]
设置告警等级(0:
无;
1:
严重;
2:
劝告)
/X
列举错误条件
/Zi
生成CodeView的行号信息
/Zd
生成CodeView的标识符号信息
下面用一个汇编程序说明MASM.EXE的使用方法。
汇编程序名称为HELLO.ASM,内容如下:
data1segment
msgdb"
Hello,world."
0dh,0ah,"
$"
data1ends
code1segment
assumecs:
code1,ds:
data1
start:
movax,data1
movds,ax
movdx,offsetmsg
movah,9
int21h
movax,4c00h
code1ends
endstart
输入“masmhello;
”指令,指令后的分号表示一切按缺省情况进行。
运行后显示以下内容:
Microsoft(R)MASMCompatibilityDriver
Copyright(C)MicrosoftCorp1993.Allrightsreserved.
Invoking:
ML.EXE/I./Zm/chello.asm
Microsoft(R)MacroAssemblerVersion6.11
Copyright(C)MicrosoftCorp1981-1993.Allrightsreserved.
Assembling:
hello.asm
执行MASM/LA/ZI/ZDHELLO.ASM指令,用记事本观看生成的HELLO.LST的内容。
2.5.LINK.EXE的使用
LINK.EXE用于将目标文件链接成可执行文件。
当环境参数配置好之后,在“命令提示符”窗口中键入“LINK/?
”指令,将显示出LINK的参数表。
LINK的命令格式如下:
LINK[option...]<
objs>
<
exefile>
mapfile>
libs>
deffile>
[;
可选部分是LINK的各种链接参数。
objs指定目标文件的名称,缺省的扩展名是OBJ。
可以有多个目标文件,目标文件之间用加号或者空格间隔。
exefile指定输出的可执行文件的名称。
缺省的文件名与目标文件相同,缺省扩展名改为EXE。
mapfile指定输出的列表文件的名称,缺省的扩展名是MAP。
缺省情况下不生成列表文件。
libs指定链接时使用的库文件,缺省的扩展名是LIB。
可以有多个库文件,库文件之间用加号或者空格间隔。
缺省情况下MASM不使用库文件。
deffile指定输出的定义文件的名称,缺省的扩展名是DEF。
缺省情况下不生成定义文件。
以下就各个链接参数逐个加以说明。
缩写
/ALIGNMENT:
size
/A:
根据指定的大小在分段执行文件中排列段数据,不可用于DOS程序
/BATCH
/B
隐藏库或目标文件找不到的提示
/CODEVIEW
/CO
加入CodeView的标识符号及列号,该选项与/EXEPACK不兼容。
/CPARMAXALLOC:
number
/CP:
以16字节为单位设置程序最大分配空间
/DOSSEG
/DO
用缺省顺序排列段(用于微软高级语言)
/DSALLOCATE
/DS
从数据段的尾部开始装入全部数据,用于链接成EXE文件
/EXEPACK
压缩可执行文件的大小,与/CO和/INCR不兼容
/FARCALLTRANSLATION
/F
优化远程调用,当使用/TINY时自动使用/FARCALL。
当链接WINDOWS程序时不建议同时使用/FARCALL和/FARCALLTRANSLATION
/HE
显示简要帮助信息
/HIGH
/HI
执行时尽可能地装入高端内存区,和/DEALLOC并用。
(用于微软高级语言)
/INCREMENTAL
/INC
准备加入ILINK链接,与/EXEPACK和/TINY不兼容。
/INFORMATION
/INF
显示链接过程的信息
/LINENUMBERS
/LI
将源文件行号和相关地址加入MAP文件,目标文件必须带行号汇编。
/MAP
/M
将公共标识符加到MAP文件
/NODEFAULTLIBRARYSEARCH[:
library]
/NOD[:
忽略指定的缺省库
/NOEXTDICTIONARY
/NOE
阻止LINK寻找库中的扩展字典,当重定义标识符导致错误L2044时使用/NOE
/NOFARCALLTRANSLATION
/NOF
禁止远程调用
/NOIGNORECASE
/NOI
区别大小写字母
/NOLOGO
/NOL
隐藏版权信息
/NONULLSDOSSEG
/NON
类似于/DOSSEG参数,但是在_TEXT段前不加额外的字节
/NOPACKCODE
/NOP
对代码段不压缩
/PACKCODE:
/PACKC:
将相邻的代码段合并压缩,指定的字节数用于设定物理段的最大值。
/PACKDATA:
/PACKD:
将相邻的数据段合并压缩,指定的字节数用于设定物理段的最大值。
仅用于windows
/PAUSE
/PAU
链接过程中暂停以更换磁盘
/PMTYPE:
type
/PM:
指定基于Windows的应用程序的类型。
类型为PM表示是WindowsAPI;
类型为VIO表示是WindowsCompat;
类型为NOVIO表示不是WindowsCompat;
/QUICKLIBRARY
/Q
建立QuickBasic程序库
/SEGMENTS:
/SE:
设置链接时的段总数,缺省值为127
/STACK:
/ST:
设置栈段的最大字节数,不超过64K
/TINY
生成小模式的COM文件,与/INCR不兼容
/?
下面将刚才用MASM.EXE汇编出来的目标程序进行链接。
目标程序名称为HELLO.OBJ。
输入“linkhello;
Microsoft(R)SegmentedExecutableLinkerVersion5.31.009Jul131992
Copyright(C)MicrosoftCorp1984-1992.Allrightsreserved.
LINK:
warningL4021:
nostacksegment
链接警告没有定义栈段,这不影响程序的运行。
接下来可以运行HELLO.EXE,看看显示结果是不是“Hello,world.”。
2.6.ML.EXE的使用
ML.EXE的功能相当于MASM.EXE和LINK.EXE的总和,可以将汇编语言源程序汇编和链接后直接生成可执行文件。
当环境参数配置好之后,在“命令提示符”窗口中键入“ML/?
”指令,将显示出ML的参数表。
ML的命令格式如下:
ML[/options]filelist[/linklinkoptions]
可选部分是ML的各种链接参数,/linklinkoptions里设定的是链接参数,这些参数可以参照2.5LINK的有关参数。
filelist指定汇编源文件的名称,缺省的扩展名是ASM。
可以有多个汇编源文件,文件之间用空格间隔。
/ATEnabletinymodel(.COMfile)
允许小模式(生成COM文件)
/Bl<
linker>
Usealternatelinker
使用linker参数里指定的链接器
/cAssemblewithoutlinking
仅仅汇编不链接
/CpPreservecaseofuseridentifiers
区分用户标识符的大小写
/CuMapallidentifierstouppercase
将所有标识符映象为大写
/CxPreservecaseinpublics,externs
区分公共标识符和外部标识符的大小写
name>
[=text]Definetextmacro
用给定的名字定义文字宏
/EPOutputpreprocessedlistingtostdout
生成预处理列表并输出至屏幕
/F<
hex>
Setstacksize(bytes)
设置堆栈大小
/Fb[file]Generateboundexecutable
生成限制性的可执行文件
/Fe<
file>
Nameexecutable
设置可执行文件的名称
/Fl[file]Generatelisting
生成汇编代码列表文件
/Fm[file]Generatemap
生成链接映象文件
/Fo<
Nameobjectfile
设置目标文件的名称
/FPiGenerate80x87emulatorencoding
生成80x87模拟代码
/Fr[file]Generatelimitedbrowserinfo
生成源浏览文件(SBR)
/FR[file]Generatefullbrowserinfo
生成扩展源浏览文件(SBR)
/G<
c|d>
GeneratePascalorCcalls
指定汇编生成的调用格式。
C:
pascal类型
D:
C类型
/H<
number>
Setmaxexternalnamelength
设置扩展名的最大长度
Addincludepath
添加include文件的目录
/link<
linkeroptionsandlibraries>
链接选项和库
/nologoSuppresscopyrightmessage
取消版权信息
/SaMaximizesourcelisting
列表文件最大化
/SfGeneratefirstpasslisting
生成第一遍的汇编代码列表
/Sl<
width>
Setlinewidth
设置列表文件行宽
/SnSuppresssymbol-tablelisting
/Sp<
length>
Setpagelength
设置列表文件的页长度
/Ss<
string>
Setsubtitle
设置列表文件的子标题
/St<
Settitle
设置列表文件的标题
/SxListfalseconditionals
列表文件中列举错误条件
/Ta<
Assemblenon-.ASMfile
汇编非ASM后缀的文件
/VMEnablevirtualmemory
启动虚拟存储器
/wSameas/W0/WX
设置告警级别为0
/WXTreatwarningsaserrors
传回告警的错误码
/W<
Setwarninglevel
设置告警级别(1、2、3)
/XIgnoreINCLUDEenvironmentpath
忽略INCLUDE环境路径
/ZdAddlinenumberdebuginfo
在目标文件中产生CodeView列号
/ZfMakeallsymbolspublic
在目标文件中产生CodeView所有公共标识符
/ZiAddsymbolicdebuginfo
在目标文件中产生CodeView标识符
/ZmEnableMASM5.10compatibility
与MASM5.10兼容
/Zp[n]Setstructurealignment
排列结构数据的起始地址为n(1、2、4)的倍数
/ZsPerformsyntaxcheckonly
只检查语法不产生目标文件
下面使用ML.EXE对ASM文件进行汇编和链接。
汇编文件的名称为HELLO.ASM。
执行“MLhello.asm”指令,如无错误的话将生成可执行文件HELLO.EXE。
Microsoft(R)MacroAssemblerVersion6.00
Copyright(C)MicrosoftCorp1981-1991.Allrightsreserved.
Assembling:
Microsoft(R)Segmented-ExecutableLinkerVersion5.13
Copyright(C)MicrosoftCorp1984-1991.Allrightsreserved.
ObjectModules[.OBJ]:
hello.obj
RunFile[temp.exe]:
"
hello.exe"
ListFile[NUL.MAP]:
NUL
Libraries[.LIB]:
DefinitionsFile[NUL.DEF]:
;
运行HELLO.EXE,看看显示结果是不是“Hello,world.”。
2.7.用DEBUG调试可执行文件
用MASM编译了汇编语言源文件HELLO.ASM之后,用DEBUG调试可执行程序HELLO.EXE。
具体的做法是:
1、在“