汇编语言编程软件使用指南
1、 编辑源文件 PWB的编辑功能与许多编辑器的功能类似,有:建立新文件、保存文件、另存为、光
标移动功能、块操作、插入/删除操作、恢复操作、查找/替换操作、设置编辑器的功能键和 各类颜色等。要想了解更全面的编辑功能,可查看菜单:File、Edit、Search和Options 的前四个菜单项。
在画面1.1(Options菜单中的“Colors…”)中,可选择各类窗口、菜单和文本等对象 的背景色和前景色。比如:当要改变源程序的显示颜色时,可先在左边的列表框中选择 “Text”列表项,然后再选择其背景色和前景色。
Start at mark
[/R]
Read-only mode
[<files>]
[[/T] <file>]...
(Temporary) file to open
通常情况下,在PWB后面跟一个将要编辑的源文件名。假如要编辑源文件TEST.ASM, 那么,可直接输入下面命令:
…>pwb test.asm
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>]
08/26/00 18:42:57
test.asm
Page 1 - 1
.model small
.486
0000
.data
.radix 7
0000 2A 08 0F
w2 db 60,11,18
0003 000A 0009 w1 dw 10T, 1001B
0000
.code
.startup
mov dl, 7777h
6
编写程序很难做到:编辑、汇编、连接、运行一次完成,除非程序的功能非常简单。 当运行的结果不符合要求时,就需要跟踪程序的运行。一般来说,跟踪程序执行的工作又 称为调试程序,即找出程序中不正常的逻辑关系和语句。
常用的调试手段有二种:执行代码的调试和符号调试。 前者是在没有任何源程序信息的情况下进行的调试,其工作难度大、效率低,后者是 源程序一级上进行的调试,其目标代码的执行过程就象是源程序的执行,这种调试手段效 率高、调试难度低,也是目前最流行的调试手段(在各种编程环境下都有类似的调试工具)。 为了能进行符号调试,需要告诉汇编程序和连接程序保留源程序中的各种符号信息。 为此,可通过下面三步来设置一些命令选项。 (1)、设置生成选项 选择Options菜单中的“Build Options”菜单项,显示出画面1.5,并选择其中的“Use Debug Options”选项。
/?
/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
如果MASM命令显示了类似如上的处理结果,那么,表示源文件TEST.ASM已成功汇 编,并已生成了其目标文件TEST.OBJ。
(*) 用户输入的命令用“下划线”来表示,系统显示的内容没有“下划线”。以下与此相同。
1
例1.3:用MASM命令汇编源程序 …>masm test …… Invoking: ML.EXE /I. /Zm /c test.asm …… Assembling: test.asm test.asm(10): error A2070: invalid instruction operands
这种方法需要确认连接过程中的各种文件名,如果使用文件名的默认值,那么直接按 “回车”键即可。在上面四个文件名中,最重要二个文件名是:执行文件名和库文件名。 一般情况下,无需更换最终生成的执行文件名;如果在连接过程中需要其它的库文件,则 在显示第三行提示时,输入所需要的库文件名。
最后一行显示一个警告信息,提出本程序没有定义堆栈段,该警告信息可以不必理会, 因为该执行文件是可运行的,在操作系统装入时会自动为其添加一个默认的堆栈段。
MASM系统提供了可用于源程序一级的调试工具CV(CodeView)。有关CV的使用参见“调 试工具”中CodeView的介绍。
3
例1.7:用符号调试工具CV来调试程序TEST.ASM所生成可执行文件。
…>masm /Zi /Zd test
;假设其没有语法错
…>link /Co test
…>cv test.exe
2
3、. 连接程序 当由源文件汇编成功后,即可用连接程序(LINK.EXE)生成其可执行文件。
例1.5:查看连接程序(LINK.EXE)的具体选项。
…>link /?
LINK <objs>,<exefile>,<mapfile>,<libs>,<deffile>
Valid options are:
下面给出一些使用该命令的实例情况。 例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命令显示了类似如上的处理结果,那么,表示源文件有错,没有生成其目 标文件。在本例中,显示第10行有语法错:非法的指令操作数。这时,要用编辑器阅读源 程序的第10行,看看输入指令时是否有误。
假如源程序有许多错误,很难记住全部出错位置,那么,可用列表文件来辅助查错。
例1.4:在汇编源程序的同时,生成其列表文件。 …>masm test, ,test ……
..在连接时,可指定堆栈的大小、附加的库文件、符号跟踪等选项; ..在运行时,可设置命令行参数、直接运行、按调试方式运行、用DOS命令来运行等。
例1.8:查看PWB的启动方式 …>pwb /? ……
Usage: PWB [<options>] [<files>]
[<oLeabharlann tions>][/D[S|T|A]...]
汇编语言编程和调试工具
一、汇编语言编程工具
学习汇编语言的目的就是要用汇编语言编程来解决实际问题,下面介绍二种常用的汇 编语言编程环境:宏汇编MASM 6.11和Turbo Assember 5.0。
1.1、宏汇编MASM系统
在宏汇编MASM系统中,程序员可用二种方法来处理源程序:命令行和集成环境。
1.1.1 命令行命令
test.asm(10): error A2070: invalid instruction operands
0010 8B C2
mov ax, dx
0012 0F A4 C2 01 shld dx, ax, 1
0016 D1 D0
rcl ax, 1
.exit 0
end
在此后面还有其它内容,但它们对查错没有帮助,所以,在此省略。
1、. 编写源程序 可用计算机系统中各种能编辑文本文件的编辑器来编辑汇编源程序。常用的编辑器有:
EDIT、Q、Word、记事本、写字板、WPS等。源文件的后缀为:.ASM。 2、. 汇编程序
当源程序编写好后,可用MASM命令来汇编该源程序。如果源程序没有语法错误,那 么,将生成目标文件(.OBJ文件),为最终生成可执行文件作准备,但如果源程序有错误, 汇编程序将显示出错误位置和原因,也可用列表文件(.LST文件)来查看出错位置和原因。
1.1.2 编程集成环境PWB
PWB(Programmer's WorkBench)是MASM 6.11提供的编程集成环境,在此环境下, 程序员可直接编写源程序、汇编、连接和运行。
..在汇编源程序时,如果有错误,系统将列举出所有出错位置和出错原因。还可用 Shife+F3和Shife+F4来定位前一个错误和后一个错误;
方法2:在文件名后面加上分号“;”,默认使用各类文件的缺省值。 …>link test; …… LINK : warning L4021: no stack segment
4、. 运行程序 当要运行所生成文件时,可直接输入其文件名即可。
…>test
5、. 符号调试程序 当程序的运行结果不是预期结果时,就需要调试程序,找出错误的语句或逻辑关系。
画面1.2 连接选项的部分设置画面 在该画面上还可为程序设置一个缺省的堆栈段,其大小也可由用户自行决定。 当生成执行文件需要多个模块连接时,就需要建立一个工程文件(.MAK)。建立工程文 件的步骤和画面如下: (1)、输入工程文件名,其默认的后缀为.MAK。输入画面如画面1.3所示 在画面1.3中还可选择工程目标文件的类型,该类型有:EXE、COM、LIB、Windows 的EXE或DLL等二十几种。当然,对每种类型又有一些不同的要求,在此不在进一步展开
画面1.5、设置生成选项的画面 (2)、设置汇编命令的选项 选择Options菜单中的“Project Templates”→“Customize Project Template”菜 单项,显示出画面1.6。