当前位置:文档之家› MASM6使用简介

MASM6使用简介

附录1 汇编语言编程和调试工具一、汇编语言编程工具学习汇编语言的目的就是要用汇编语言编程来解决实际问题,下面介绍二种常用的汇编语言编程环境:宏汇编MASM 6.11和Turbo Assember 5.0。

1.1、宏汇编MASM系统在宏汇编MASM系统中,程序员可用二种方法来处理源程序:命令行和集成环境。

1.1.1 命令行命令1、编写源程序可用计算机系统中各种能编辑文本文件的编辑器来编辑汇编源程序。

常用的编辑器有:EDIT、Q、Word、记事本、写字板、WPS等。

源文件的后缀为:.ASM。

2、汇编程序当源程序编写好后,可用MASM命令来汇编该源程序。

如果源程序没有语法错误,那么,将生成目标文件(.OBJ文件),为最终生成可执行文件作准备,但如果源程序有错误,汇编程序将显示出错误位置和原因,也可用列表文件(.LST文件)来查看出错位置和原因。

下面给出一些使用该命令的实例情况。

例1.1:查看MASM命令的功能…>masm /?(*)……/Zi Generate symbolic information for CodeView/Zd Generate line-number information其中:选项/Zi和/Zd是经常被引用的二个选项,因为它们与符号跟踪有关。

例1.2:用MASM命令汇编源程序…>masm test……Invoking: ML.EXE /I. /Zm /c test.asm……Assembling: test.asm如果MASM命令显示了类似如上的处理结果,那么,表示源文件TEST.ASM已成功汇编,并已生成了其目标文件TEST.OBJ。

(*)用户输入的命令用“下划线”来表示,系统显示的内容没有“下划线”。

以下与此相同。

例1.3:用MASM命令汇编源程序…>masm test……Invoking: ML.EXE /I. /Zm /c test.asm……Assembling: test.asmtest.asm(10): error A2070: invalid instruction operands如果MASM命令显示了类似如上的处理结果,那么,表示源文件有错,没有生成其目标文件。

在本例中,显示第10行有语法错:非法的指令操作数。

这时,要用编辑器阅读源程序的第10行,看看输入指令时是否有误。

假如源程序有许多错误,很难记住全部出错位置,那么,可用列表文件来辅助查错。

例1.4:在汇编源程序的同时,生成其列表文件。

…>masm test, ,test……Assembling: test.asmtest.asm(10): error A2070: invalid instruction operands列表文件TEST.LST是一个文本文件,可用编辑器直接阅读,并可看出其错误的位置和原因。

下面是一个列表文件的实例。

…>edit test.lstMicrosoft (R) Macro Assembler Version 6.11 08/26/00 18:42:57test.asm Page 1 - 1.model small.4860000 .data.radix 70000 2A 08 0F w2 db 60,11,180003 000A 0009 w1 dw 10T, 1001B0000 .code.startupmov dl, 7777htest.asm(10): error A2070: invalid instruction operands0010 8B C2 mov ax, dx0012 0F A4 C2 01 shld dx, ax, 10016 D1 D0 rcl ax, 1.exit 0end在此后面还有其它内容,但它们对查错没有帮助,所以,在此省略。

3、连接程序当由源文件汇编成功后,即可用连接程序(LINK.EXE)生成其可执行文件。

例1.5:查看连接程序(LINK.EXE)的具体选项。

…>link /?LINK <objs>,<exefile>,<mapfile>,<libs>,<deffile>Valid options are:/? /ALIGNMENT/BATCH /CODEVIEW……/STACK/TINY/WARNFIXUP例1.6:用连接程序生成执行文件。

方法1:…>link test……Run File [test.exe]:List File [nul.map]:Libraries [.lib]:Definitions File [nul.def]:LINK : warning L4021: no stack segment这种方法需要确认连接过程中的各种文件名,如果使用文件名的默认值,那么直接按“回车”键即可。

在上面四个文件名中,最重要二个文件名是:执行文件名和库文件名。

一般情况下,无需更换最终生成的执行文件名;如果在连接过程中需要其它的库文件,则在显示第三行提示时,输入所需要的库文件名。

最后一行显示一个警告信息,提出本程序没有定义堆栈段,该警告信息可以不必理会,因为该执行文件是可运行的,在操作系统装入时会自动为其添加一个默认的堆栈段。

方法2:在文件名后面加上分号“;”,默认使用各类文件的缺省值。

…>link test;……LINK : warning L4021: no stack segment4、运行程序当要运行所生成文件时,可直接输入其文件名即可。

…>test5、符号调试程序当程序的运行结果不是预期结果时,就需要调试程序,找出错误的语句或逻辑关系。

MASM系统提供了可用于源程序一级的调试工具CV(CodeView)。

有关CV的使用参见“调试工具”中CodeView的介绍。

例1.7:用符号调试工具CV来调试程序TEST.ASM所生成可执行文件。

…>masm /Zi /Zd test ;假设其没有语法错…>link /Co test…>cv test.exe1.1.2 编程集成环境PWBPWB(Programmer's WorkBench)是MASM 6.11提供的编程集成环境,在此环境下,程序员可直接编写源程序、汇编、连接和运行。

◆在汇编源程序时,如果有错误,系统将列举出所有出错位置和出错原因。

还可用Shife+F3和Shife+F4来定位前一个错误和后一个错误;◆在连接时,可指定堆栈的大小、附加的库文件、符号跟踪等选项;◆在运行时,可设置命令行参数、直接运行、按调试方式运行、用DOS命令来运行等。

例1.8:查看PWB的启动方式…>pwb /?……Usage: PWB [<options>] [<files>][<options>][/D[S|T|A]...] Disable CURRENT.STS, TOOLS.INI, Autoload[/P{P|F} <file>] Set PWB or Foreign Program List[/PL] Set Last Program List[/E <cmd-string>] Execute commands[/M <mark>] Start at mark[/R] Read-only mode[<files>][[/T] <file>]... (Temporary) file to open通常情况下,在PWB后面跟一个将要编辑的源文件名。

假如要编辑源文件TEST.ASM,那么,可直接输入下面命令:…>pwb test.asm1、编辑源文件PWB的编辑功能与许多编辑器的功能类似,有:建立新文件、保存文件、另存为、光标移动功能、块操作、插入/删除操作、恢复操作、查找/替换操作、设置编辑器的功能键和各类颜色等。

要想了解更全面的编辑功能,可查看菜单:File、Edit、Search和Options 的前四个菜单项。

在画面1.1(Options菜单中的“Colors…”)中,可选择各类窗口、菜单和文本等对象的背景色和前景色。

比如:当要改变源程序的显示颜色时,可先在左边的列表框中选择“Text”列表项,然后再选择其背景色和前景色。

2、汇编和连接文件画面1.1设置编辑器各类颜色的画面在集成环境下,源程序的汇编和连接是一次性完成的。

当汇编任务结束,并且没有产生错误信息时,连接程序立即开始连接工作。

但如果源文件有错,则显示所有错误位置和原因,连接程序不会被执行。

在浏览错误信息时,可用Shife+F3和Shife+F4来定位前一个错误和后一个错误。

在连接时,如果需要某个库文件,那么,可选用Options菜单中的“Link Options”菜单项来设置,该菜单项的显示画面如画面1.2所示画面1.2连接选项的部分设置画面在该画面上还可为程序设置一个缺省的堆栈段,其大小也可由用户自行决定。

当生成执行文件需要多个模块连接时,就需要建立一个工程文件(.MAK)。

建立工程文件的步骤和画面如下:(1)、输入工程文件名,其默认的后缀为.MAK。

输入画面如画面1.3所示在画面1.3中还可选择工程目标文件的类型,该类型有:EXE、COM、LIB、Windows 的EXE或DLL等二十几种。

当然,对每种类型又有一些不同的要求,在此不在进一步展开叙述了。

通常情况下,不必选择目标文件类型,其缺省类型就是DOS EXE。

画面1.3建立工程文件名的画面(2)、工程文件的编辑在画面1.3中输入工程文件名,并且按“OK”按钮时,系统将进入画面1.4,在该画面中可向当前工程中添加源程序,也可把某源程序从当前工程中删除。

画面1.4、编辑工程文件的画面当输入的文件名不在工程文件中,则把该源文件添加到工程文件中,否则,将其从工程文件中删除。

当所有源文件都添加到工程文件中时,可按“Save List”来保存该工程文件。

此后就可用打开工程文件的方式来连接该工程中的文件。

如果需要修改工程文件的话,则可先用Project菜单中的“Open Project”菜单项打开工程文件,再用“Edit Project”菜单项来激活画面1.4进行编辑。

3、运行程序在运行程序时,可设置命令行参数、直接运行、按调试方式运行、用DOS命令来运行等。

通常情况下,在编写程序的初期,一般都用“调试方式”来运行程序。

当选用这种方式时,系统会自动进入CV(CodeView)的调试环境。

有关CV的使用参见“调试工具”中CodeView的介绍。

4、符号调试的设置步骤编写程序很难做到:编辑、汇编、连接、运行一次完成,除非程序的功能非常简单。

相关主题