微机原理与接口技术A指导书..

微机原理与接口技术A

实验指导书

天津理工大学光电系信息通信工程实验中心

1

汇编语言程序的上机过程

一、 建立汇编语言的工作环境

汇编语言的工作环境基于DOS平台,建立在E盘的8086子目录中。 为了建立、运行汇编语言程序,至少要在磁盘上建立以下文件: EDIT.COM ASM.EXE

或 MASM.EXE LINK.EXE DEBUG.COM

其中 EDIT是DOS提供的全屏幕文本编辑程序。

ASM.EXE是普通汇编程序,它不支持宏汇编,如果要用宏汇编,则必须使用MASM.EXE。

LINK为连接程序。

DEBUG为调试程序,它是运行、调试汇编语言程序必不可少的工具。

当用户需要编制汇编语言源程序并在机器上运行,必须经过以下几个步骤:

1、 调用编辑程序建立和修改扩展名为.ASM的汇编语言源文件。 2、 源文件必须经过汇编,生成机器代码的目标文件。

3、 经过连接,把目标文件与库文件及其他目标文件连接在一起,形成可执行文件。 4、 运行可执行文件。

二、 调用编辑程序EDIT建立汇编语言源程序(ASM 文件)

源程序就是用汇编语言语句编写的程序,它必须以ASM为附加文件名。 在EDIT下,通常用键盘输入源程序,此时源程序以ASCII字符形式存放在内存缓冲区。若输入过程有错,可以用EDIT的命令来修改,改正后存盘,于是在盘上就建立了一个源程序文件。

EDIT是MS-DOS中的全屏幕编辑器,它的使用方法可查阅手册。 三、调用汇编程序MASM(或ASM)产生目标文件(OBJ文件)

源程序建立后,必须经过汇编,以生成对应机器代码的目标文件,机器才可能运行。目标文件以OBJ为扩展名。

汇编是由调用宏汇编程序MASM或汇编程序ASM来实现的。 以源程序ABC.ASM为例,汇编过程如下:

E:\\8086>MASM ABC.ASM↙

此时汇编程序被调入,显示器将显示其版本号,并依次出现三行提示: Object filename[ABC.OBJ]: Source listing[NUL.LST]: Cross reference[NUL.CRF]:

汇编后产生三个文件,目标文件(.OBJ)、列表文件(.LST)及交叉符号表文件(.CRF)。 第一个是目标文件,在这个文件中操作码部分已变为机器码,但地址操作数只是一个可浮动的相对地址而不是内存的绝对地址。产生目标文件是我们进行汇编的主要目的,操作时打入回车就可以。

第二个是列表文件,它以LST为扩展名,列表文件同时给出源程序和机器语言程序,使调试程序变得方便。LST文件可有可无,不需要,打入回车,如果需要,打入文件名、回车。

第三个是交叉符号表文件,此表给出了用户定义的所有符号,对每个符号列出了将其定

2

义的所在行号及引用的行号。交叉符号表可有可无,不需要,打入回车,如果需要,打入文件名、回车。

汇编结束,汇编程序给出源程序中的错误信息,Warning Errors为警告性错误,Sever Errors 为严重错误,前者指一般性错误,后者指语法性错误。若程序中存在这两类错误,则应重新调用编辑命令修改错误再进行汇编,直至汇编正确通过为止。 四、调用连接程序LINK产生执行文件(EXE文件)

汇编过程产生的目标文件OBJ中的地址操作数是可浮动的相对地址,不能直接上机执行,必须经过LINK命令连接以后才成为可执行的EXE文件。如果一个程序由多个模块组成,也应该用LINK将它们连接起来。

以对ABC.OBJ进行连接为例,具体操作如下: E:\\8086> LINK ABC↙

显示器将显示其版本号并依次出现三行提示 Run File[ABC.EXE] List File[NUL.MAP] Libraries[.LIB]

LINK程序有两个输入文件OBJ和LIB。OBJ是需要连接的目标文件,LIB是需要用到的库文件。对[.LIB]如无特殊需要,打入回车,若需要,输入库名。

LINK过程产生两个输出文件。一个是EXE文件,产生此文件是LINK过程的主要目的,对[ABC.EXE]回答↙。另一个是MAP文件,称为列表分配文件,它给出每个段在内存中的分配情况。对[ABC.MAP],不需要回答,打入回车,若需要,输入文件名、回车。 五、程序的执行

汇编语言源程序经过汇编、连接以后生成的EXE文件,是可执行文件。建立了EXE文件,就可以在DOS 提示符下直接执行程序,执行程序时只要键入文件名回车即可。如:

E:\\8086> ABC↙

通常程序执行后,一次通过的可能性很小,这就需要重复上述的编辑、汇编、连接和运行程序的全过程,直至程序运行正确。 六、调试程序DEBUG

调试程序DEBUG是MS-DOS支持的动态排错程序,是一种使用广泛的强有力的汇编语言程序或二进制文件的调试工具。在DEBUG管理下,可以单步执行程序,也可以在程序中设置断点,可以显示和修改指定内存单元和区域的内容,也可以显示和修改CPU内部寄存器和标志位的内容,这样将便于寻找程序中的错误。用调试程序DEBUG发现错误,再通过编辑程序EDIT纠正错误。DEBUG的使用方法可参阅DOS手册。下面给出最常用的几个命令。

1.如何调用DEBUG

DEBUG有两种启动方法: C:\\>DEBUG(文件名.扩展名) 或C:\\>DEBUG

第一种方式是DOS把DEBUG调入内存后DEBUG把被调试的程序调入内存。被调试程序装入后显示DEBUG提示符“―”。

第二种方式是,调用DEBUG后,立即显示提示符“―”。 2.最常用的DEBUG命令 (1)反汇编命令U

―U [address]↙;从指定地址开始反汇编32个字节 ―U ↙;从当前地址开始反汇编32个字节

3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4