21游戏网
您的当前位置:首页实验一简单程序设计及其调试

实验一简单程序设计及其调试

来源:21游戏网




实验一简单程序设计及其调试

一、实验目的

1.掌握汇编程序由编辑、编译、链接到调试的全过程。2.学会使用TD调试程序。

3.通过汇编调试工具加深对机器指令执行过程的了解。

二、实验要求

1.掌握编写汇编语言,并编译成对象文件,最终连接成可执行文件。 2.学会用汇编调试工具软件TD.EXE文件进行调试及执行程序的方法。通过汇编调试工具加深对机器指令执行过程的了解。

3.通过学习编写顺序结构的简单程序,熟悉各类常用指令。

4.结合CPU硬件结构,分析各指令取值和执行指令时形成的总线信号.

三、实验仪器

PC

四、实验内容

1.学习编辑、编译、链接、执行和调试汇编语言程序的过程。

1)编辑软件
编辑软件:EDITQEWORDNOTEPADVISUALASSEMBLY编辑窗口等。

当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM,文件名用英文。

2)汇编程序
有汇编ASM.EXE、宏汇编MASM.EXETASM等,TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。

经过编译命令把汇编语言源程序编译成目标程序,(扩展名为.OBJ)。如果汇



编过程中发现源程序有错误,会出现错误信息提示,此时可分析错误原因,返回

编辑程序修改源程序。

汇编后可生成以下几个文件:
.OBJ文件
.OBJ文件是必须生成的一个目标代码文件,当源程序中无语法错误时,则在当前工作盘上自动存入一个.OBJ文件,供下一步连接用。

若源程序有语法错误时,会出现错误信息提示:

源程序文件行

错误信息代码

错误说明信息

最后信息提示:
××Warning errors (警告错误)
××Severeerrors (严重错误)
若严重错误总数不为0,则.OBJ文件没有生成,需回到编辑状态下修改源程序直到无错为止。

.LST文件(列表文件)
.LST文件对调试程序有帮助,它是将源程序中各语句及其对应的目标代码和

符号表以清单方式列出,如果需要,在屏幕显示的第二个提问的冒号后输入文件

名即可,如果不需要,直接按回车键。

.CRF文件(交叉引用文件)
交叉引用.CRF文件给出了源程序中定义的符号引用情况,按字母顺序排列。.CRF文件不可显示,须用CREF.EXE系统程序将.CRF文件转换成为.REF文件后方可显示输出。

例如:编译A.ASM文件。

直接点击VISUALASSEMBLY编译菜单或>TASMA <Enter> Turbo Assembler Version 2.5 Copyright (c) 1988,1991Borland International Assembling file: a.ASM
Errormessages: None
Warningmessages: None
Passes:1



Remainingmemory: 162k
3)连接程序
汇编后生成的.OBJ文件,其所有目标代码的地址都是浮动的偏移地址,机器

不能直接运行。必须用连接程序(TLINK.EXE)对其进行连接装配定位,产生.EXE可执行文件,方可运行。

连接后可生成以下几个文件:
EXE文件(可执行文件)
若采用方括号中的默认值,直接按回车键,否则需重新输入一文件名。

若连接过程中无错误,则自动在当前工作盘生成.EXE文件。若有错误,则会给出错误信息提示,这时必须重新修改源程序,再汇编、连接。

.MAP(连接映像文件)
.LIB库文件
连接程序询问是否使用某种库文件,不需使用库文件直接按回车键。

例如:链接A文件。

直接点击VISUALASSEMBLY连接菜单或>TLINKA <Enter> TurboLink Version 4.0 Copyright (c) 1991 BorlandInternational
4)运行程序
经过汇编、连接后生成的.EXE文件,可在DOS系统直接运行,只要键入相应的文件名即可。

如:C:\MASM><文件名>
5)汇编语言动态调试工具TD调试汇编程序
TD设计具有Turbo系列语言的特点,其多重覆盖窗口、下拉菜单和弹出菜单的结合给用户提供了一个快速友好的交互环境,帮助系统使用十分方便。以下给出常用操作命令,具体使用见《TD.EXE简要使用说明》。

A启动TurboDebugger
Syntax:>TD objfiles
例如:调试已编译链接后的A文件:
>TD A <Enter>



进入TD后屏幕显示
下拉菜单栏:在屏幕的上端
代码区域:按地址,机器码及助记符组成
寄存器域:CPU 中寄存器内容
标志域:CPU 中所有标志状态
堆栈区域:当前堆栈内容
数据区域:以地址,ASCII 码值及ASCII码显示数据
常用命令栏:在屏幕下端
屏幕中间区域可通过TAB键移动
BF10 Alt- 进入菜单提示栏,回车选择对应菜单
例如:Alt - F 进入屏幕上端的File,回车后显示下拉菜单,移动光标可选择相应功能。

CAlt - F10 访问局部菜单通过该命令,用户可容易的进入当前栏的局部菜单。

D窗口命令使用下拉菜单的Window,可进入多窗口显示,用户可调试窗口的位置和大小,以最佳的方式观察程序执行过程同时可切换不同显示窗口。

E常用执行命令在常用命令栏有提示,以下给出更有趣的命令:连续慢速执行在RUN菜单下选择Animate
反向跟踪执行Alt- F4
断点方式执行用F2设断点,使用RUN命令后停在断点处

2.编写一包括七种寻址方式的汇编程序
MOV指令编写常用七种寻址方式的汇编程序,完成由编辑、编译、链接到调试的全过程。在调试过程中应使用单步、断点等方法调试,注意观察寄存器、标志位和有关存储器内容的变化。

输入源程序。

汇编、连接程序,生成.EXE文件,执行文件,检查结果,同时结合CPU硬件结构,分析各指令取值和执行指令时形成的总线信号
3.编写一包括常用指令的汇编程序



编写汇编,完成由编辑、编译、链接到调试的全过程。通过汇编调试工具加深对机器指令执行过程的了解。

输入源程序。

汇编、连接程序,生成.EXE文件,执行文件,检查结果,同时结合CPU硬件结构,分析各指令取值和执行指令时形成的总线信号。

4编写一个顺序结构的简单程序,要求从键盘输入一个字符,从屏幕显示出该字符的ASCII码值。

分析题目,将程序中的原始数据和最终结果的存取方法确定好。

画出流程图。

写出源程序。

汇编、连接程序,生成.EXE文件,执行文件,检查结果。

五、实验报告要求

1.列出源程序,说明程序的基本结构,包括程序中各部分的功能。

2.写出各类常用指令的格式、机器码、运行结果和flag的变化值。3.说明标志位CFSFOF的意义。

4.结合CPU硬件结构,分析各指令取值和执行指令时形成的总线信号。5.对调试源程序的结果进行分析。

6.上机调试过程中遇到的问题是如何解决的?

六、实验预习报告要求

1.根据实验内容分析题目,画出流程图,写出源程序。

2.对程序中的结果进行分析,并准备好上机汇编调试的软件。

显示全文