电子科技大学 汇编 实验报告.doc
《电子科技大学 汇编 实验报告.doc》由会员分享,可在线阅读,更多相关《电子科技大学 汇编 实验报告.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机专业类课程实验报告课程名称:汇编语言程序设计学院:计算机科学与工程专业:计算机科学与技术学生姓名:郭小明学号:10日期:2013年12月24日电 子 科 技 大 学实 验 报 告实验一学生姓名:郭小明 学 号:10 一、实验室名称: 主楼A2-412 二、实验项目名称:汇编源程序的上机调试操作基础训练三、实验原理:DEBUG 的基本调试命令;汇编数据传送和算术运算指令 MASM宏汇编开发环境使用调试方法四、实验目的:1. 掌握DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法 3熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程五、 实验内容: 编写程序计算以
2、下表达式: Z=(5X+2Y-7)/2设X、Y的值放在字节变量VARX、VARY中,结果存放在字节单元VARZ中。1编辑源程序,建立一个以后缀为.ASM的文件.2汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3连接目标程序,产生可执行程序。4用DEBUG程序调试可执行程序,记录数据段的内容。 VARXVARYVARZ541052020六、实验器材(设备、元器件):PC机 ,MASM软件平台。七、实验数据及结果分析:程序说明: 功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。其中X 与Y是已知量,Z是待求量。 结构:首先定义数据段,两个D
3、B变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。详细内容见程序注释。程序清单: 调试说明: 将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe); 没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成功生成了test1.exe. 然后输入Debug命令进入调试环境,-是debug命令提示符。 我们执行-n test1.exe -l 装入我们的t
4、est1.exe 然后我们-u反汇编程序, 得到程序的反汇编。1485显然是我们的数据段逻辑地址我们来查看一下1485::0000 到 1485:1111 这16个字节的内容,理论上应该是05,04,00.00 05正是VARX 04 正是VARY 00 正是VARZ 正如我们所料下面是单步调试逐条执行汇编指令的操作。现在我们执行程序(-g),然后再次查看数据段里面的内容VARZ的内容变成了0D事实上(5*5+4*2-7)/ 2 = 13 就是0D 开始 程序框图: AX与AX进行异或(置零)CX与CX进行异或(置零) VARX AL 5 CL AL = AL * CL AL DLAX与AX进
5、行异或(置零) VARY AL 2 CL AL = AL * CL AL + DL AL AL - 7 AL 2 CL CL / 2 = CL AL VARZ 结束VARXVARYVARZ5413105 262020 66九、 实验结论: 通过本次实验,我们学习了解掌握了DEBUG 的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。完成了Z = (5*X + 2*Y - 7)/ 2 算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想。通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程
6、能力和设计水平。 另外在此感谢指导老师的辛勤工作! 电 子 科 技 大 学实 验 报 告 实验二学生姓名:郭小明 学 号:10 一、实验室名称: 主楼A2-412 二、实验项目名称:分支程序与循环程序设计三、实验原理: 分支程序设计基本规范与调试方法, 循环程序设计与调试方法;分配与使用寄存器的相关方法四、 实验目的:1、 掌握分支程序的结构。2、 掌握分支程序的设计与调试方法。3、 掌握循环程序设计与调试方法4、 掌握正确分配与使用寄存器。六、 实验内容:编程实现:分别统计下列20个数中大于5、小于零和大于等于零且小于等于5的数据个数,分别存入字节单元RES1、RES2和RES3中。BUFF
7、 DB -1, 20, 3, 30, -5, 15, 100, -54, 0, 4, 78, 99, -12, 32, 3, 23, -7, 24, 60,-51六、实验器材(设备、元器件):PC机,MASM软件平台。七、 实验步骤: 程序说明: 功能:本程序完成对一个数组当中大于5,小于0以及大于等于0小于等于5的数的个数的统计。分别存入字节单元RES1、RES2和RES3中。 结构:首先定义数据段, BUF数组的初始化,以及数组成员个数的统计以备循环时使用,以及结果存放在RES1,RES2,RES3,初始化为0。然后定义堆栈段,然后书写代码段,代码段使用分支与循环程序设计本程序,首先通过L
8、EA指令获取BUF首地址,然后首地址每次加一之后就可以根据循环次数遍历整个数组,遍历的时候首先将获得数据与0进行比较,如果小于0跳转到BELOW0(JL BELOW0)标号处执行,若不是的话再与5进行比较,如果小于等于5的话跳转到BELOW5(JLE BELOW5 ;如果小于5则跳转 ),再然后的话数据必然是属于大于5的范围,由此统计三类数据的个数。详细见程序。 程序清单: 调试说明:将汇编语言(.asm文件)翻译为目标代码程序(.obj文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe文件),(LINK.exe);我们成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子科技大学 汇编 实验报告 实验 报告
限制150内