汇编语言程序设计

汇编语言程序设计

实验报告

实验名称

上机过程及顺序结构与分支结构程序设计实验

班 级 学 号 姓 名

日 期 2017年10月26号 成 绩 评 阅 人

软件学院

一、 实验目的与意义

理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。

二、 实验环境

操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室

三、 实验的预习内容

预习的主要内容:

1. 使用DEBUG命令的方法;

2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用;

实验思路:

在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。

实验一:

题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。

题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。

实验二:

先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。

实验三:

先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

据段中的data3并判断data3是否大于0;最终通过不同数据情况判断应当输出空字符、字符“-”或字符“+”。

四、 实验的步骤与调试方法

实验一:

按照要求编写代码,然后编译、连接、运行。使用E命令修改数据,G命令查看,D命令查看数据变化;使用A命令修改加法为减法,G命令查看,再用D命令查看数据变化。

实验二:

编写代码运行后从键盘输入0-9其中一个数字,检验结果是否正确,多次运行并检测。

实验三:

编写代码运行后,检验结果正确性,Debug使用E命令修改数据,检验结果正确性。

遇到的问题及调试办法:

分支结构出错,判断之后指向错误导致结果错误。Debug使用P单步执行。

五、 实验数据与实验结果

实验一:

程序一:执行的结果如下:

从中可以看出初始的值为13和26,之后继续进行单步执行,知道程序的结束,此时程序执行完毕,执行结果如下:

之后,执行D 0B3E:0002观察结果,得知此时的和为39,结果如下图:

之后,使用E命令,在E后加入数据地址,之后输入要修改的数据,将13改为3,将26改为5,并且使用了D命令观察数据是否更改,经验证数据已经进行了更改,结果如下图:

之后,使用G命令来继续执行程序,结果如下图:

之后使用D命令来显示结果得知结果为8,结果正确:

使用A命令来更改ADD为SUB,首先使用U命令来进行反汇编,找到ADD所在的地址,使用A命令,在A后面加上ADD的地址进行修改,如下图:

之后进行单步执行得到结果如下得到减法的结果为ED:

程序二:

经过debug的D命令显示,得到如下结果

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