发布时间 : 星期二 文章masm指导书08.8.20doc更新完毕开始阅读7182dfd9d15abe23482f4d06
附B
33
附录C 宏汇编MASM的使用
一、宏汇编程序MASM的启动
用宏汇编程序汇编程序的操作除把宏汇编程序MASM装入内存外,必须提供以下信息;源程序( .ASM为扩展名)文件的盘符和文件名,汇编产生的目的文件( .OBJ为扩展名)准备要存放的磁盘符和文件名,要产生的源文件的列表文件要存放的磁盘符和文件名,要产生的交叉对照文件要存放的磁盘符和文件名,MASM只有得到了这些信息才能把源程序装入内存并开始汇编。可以有三种方式输入这些信息,所以也就有三种方式启动MASM。
方式1:逐项询问回答方式
(1)从键盘打入(最后打入回车键,以下同) MASM 显示提示信息
Sourcc filcname [ .ASM]:
要求用作为原文件所在盘符和文件名,扩展名可不打入,默认为 .ASM;盘符不打入为当前盘。如打入
Sourcc filcname [ .ASM]:MYFILE
意思是源文件的名字为MYFILE,扩展名为 .ASM,在当前盘上(严格说,应该是驱动器里的盘上)。
(2)显示提示信息
Objcct filcname [myfile .OBJ]:
要求回答产生的目的文件将放在哪个驱动器盘上、对文件命什么名。由于源文件名是MYFILE,所以在[ ]内表示,如果你不打入新的文件名,将默认为与源文件名相同;同样,如果不打入新的盘符,也默认为当前盘。
(3)显示提示信息
Sourcc listing [NUL.LST]:
要求回答包括有源程序和码的列表文件存入的盘符和文件名,如果不需要产生这个文件,只打回车键;否则,打入盘符和文件名。
(4)显示提示信息
Cross rcfcrcnce [NUL .CRF]:
要求回答将要产生的交叉对照文件存入的盘符和文件名。交叉对照文件包括源程序内的变量等各种标识符的简要说明。但这个文件要经过交叉对照索引应用程序的处理才能显示和打印输出(后面介绍)。如果不需产生这个文件,只以回车键回答。
至此,MASM开始把源程序文件装入内存并汇编。 方式2:用一个命令行提供汇编需要的所有信息 命令格式为
MASM sourcc, objcct, list, cross-ref / parms;
其中 sourcc、objcct、list、cross-ref位置分别应该打入源程序文件、目的程序文件、列表程序文件、交叉对照文件的盘符和文件名。
当使用这种命令行时,如果四个文件名都指定了(可用默认名)或虽然没指定四个文件
34
名但却打入了分号,则不再显示任何需要回答的提示信息。若文件名指定不全,且也没有以分号结尾,则还会出现必要的提示信息请求回答。但/parms(参数)项不会提示。例如:
MASM module
表示源文件名为module .ASM,对以后三项提示信息还将逐一显示和请求回答。
MASM module;
表示源文件名为 module,由于打入了分号,所以默认为目的文件名是module .OBJ,不产一列表文件和交叉对照文件。
MASM module,,;
表示除上例文件外,还产生module .LST文件。
MASM module,,,;
表示四个文件名都是module。
MASM module,,,
表示还要交叉文件的提示信息
cross rcfcrcnce [module .CRF]: MASM module, NUL,;
表示不产生目的文件和交叉对照文件,但产生列表文件module .LST。
方式3:建立一个批处理文件
下面是一个批处理文件的例子。假设在B驱动盘上有源程序,名为%1 .ASM。汇编中产生的列表文件 .LST和交叉参照文件 .CRF都先暂存在B盘上,待 .LST文件打印输出后删除这个文件。待CREF文件处理了 .CRF文件并打印输出后删除 .CRF和由它产生的 .REF文件。在A驱动器盘里有DOS、MASM和CREF程序。
用EDLIN建立的批处理文件ASSEM .BAT如下: A:MODE LPTI:132 B:
A:MASM %1,NUL,,; A:TYPE %1 .LST A:ERASE %1; A:CREF %1;
A:TYPE %1 .REF A:ERASE %1 .REF A:ERASE %1 .CRF
关于/parms参数。参数是可选项。在方式2的命令行最后,或方式1回答任一提示之后可以打入参数。参数必以斜杠开头。参数意义如下:
/D 这个参数要求MASM在汇编的第二次扫描后产生 .LST文件。这样,.LST文件内包括二次扫描中出现的错误。
/O 这个参数要求MASM产生的机器码程序以八进制形式表示偏移量。
/X 这个参数删除否定条件为假列表,它应与伪指令SFCOND、LFCOND、 .TFCOND一起使用。 二、CREF程序启动
35
前面已经指出,汇编过程中产生的 .CRF文件还要经过CREF程序处理产生 .REF文件才能打印输出。CREF也是系统应用程序。有两种启动方式:
方式1:打入CREF程序所在盘的秀会和CREF、回车。显示提示信息 Cross rcfcrcncc [ .CRF ]:
要求回答汇编产生的 .CRF文件所在的盘符和文件名。回答后显示提示(假设以MYFLE回答)
listing [MYFLE .REF]:
要求回答要产生的 .REF文件将要存在的盘符和文件名。这样就可以产生一个可用TYPE命令或打印输出的交叉对照索引表文件 .REF。
方式2:用一个俗话地打入两个文件名。例如: CREF MYFLE,MYFLE;
与启动MASM的方式2一样,可以有几种不同的输入组合方式。这里不再说明。
36