- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
第PAGE 2页/共 NUMPAGES 14页
姓名
姓名
学号
班级
成绩
《汇编语言程序设计》 实验报告
实验名综合实验程序设计 实验室 实验日期 2010-12-15
一、实验目的及要求
1.悉debug命令,学习汇编语言的调试环境;
2.熟练撑握一些简单程序的调试,理解基本的顺序结构、分支结构、循环结构及子程序的调试过程;
3.通过对一些综合程序的调试,加深对各种结构程序的理与学习掌握汇给语言编程思想。
二、实验环境
硬件环境:一台微型计算机;
软件环境:windows xp,debug环境,masm。
三、实验内容
人名排序程序。先从终端键入最多30个人名,当所有人名都进入后,按字母上升的次序排序,并在屏幕上显示已经排好序的人名。
四、设计:
设计思想:通过运用计算机汇编语言指令系统,将我们所要表达的语言转换成机器指令,任其识别。
这是一个在使用子程序为主的基础上,综合应用顺序结构、循环结构和分支等结构的程序,以实现从键盘终端输入的人名按字母上升的次序排序。它们的过程和功能如下:
1.B10READ 接收键入的人名存放在NAMEPAR中,并用空格符清除其后的单元;
2.D10STOR 把人名从NAMEPAR 传送到NAMETAB中,并用NAMECTR计数;
3.G10SORT 用气泡排序算法对人名排序,并用SWAPPED作为交换的标志控制循环结束。其中用调用子程序H10XCHG来交换两个人名串的位置,并设置SWAPPED标志。
4.K10DISP 显示已经排序好了的人名。
人名排序的程序实现图1:
输入人名个数
输入人名个数≤1?
人名排序(g10sort)
显示已经排序了的人名
K10disp
结束
开始
初始化(Nametab)
首地址及方向标志
接收一个人名
B10read
人名输入完了吗?
人名存入Nametab d10stor
N
Y
Y
N
图1
五、调试与测试
1.由于masm5程序安装于D,改变工作目录于D盘环境下;
2.用MASM程序把ASM文件转换成OBJ文件;
3.用LINK程序把OBJ文件转换成EXE文件;
4.用DEBUG 命令调试程序;
5.用U命令返汇编;
6.用单步执行命令t,逐步实现数据段及代码段的初始化;
7.将数据据段的地址赋给DI指针寄存器,并用单步执行命令T按顺序执行程序的下一步指令,调用地址为0039的程序段b10read程序段,为实现名字的输入与输出操作;
8.用u命令返汇编,找出将要执行的程序段,用g命令一步执行地址为0039到0047
之间和程序段,显示数据段中messg1的内容即字符串Name?;
9.继续返汇编,执行程序段0047到0041完成第一个名字的输入,输入名字zhanglina,ret返回到DOS系统下,程序在调用前的地址,用T命令继续下一条指令,比较输入字符和长度和0的大小;
10.若相等,则跳到a30程序段,执行无字符输入时的程序。由于输入的字符个数为9(从数据段DS中的0001单元可以得到),然后比较所输入的名字的个数与所设的名字的最多个数30的大小;
11.由于输入名字的个数为9小于最大字符串长度30,调用d10store程序段对输入的字符个数进行计数;
12.无条件跳转到a20loop程序段;
13.继续调用b10read程序段,实现名字的继续输入;
14.返汇编输入下一个名字yingtianzi;
15.同样进行字符串长度10(即DS:0001=0A)与0的比较,根据所输入的字符串再选择相应和操作;
16.比较所输入的名字的个数,是否达到所设的名字最大个数字30;
17.对所输入的名字操作完成之后,调用程序段对所输d10stor入的名字进行计数;
18.继续调用输入名字程序段b10read,名字未输完,继续输入名字;
19.用G命令一步执行输入名字为:duanxiangxiang,并将最终的结果显示出来;
20.比较所输入字符串的长度,是否为0,若不为0,则进行字符个数的比较;字符串的长度为0,则执行无字符输入时的程序段,由数据段得知所输入的字符串长度为14。
21.由于所输入的字符串长度不为0,则进行比较所输入的名字的个数是否达到所设的最大个数30;由数据段所得已经有两个名字被计数;
22. 继续调用d10stor程序段进行名字个数的计数。
23.调用b10read程序段,输入并显示字符串;
24.循环多次输入字符串,即输入多个人名字;
25.用D命令查看所输入的字符串;
26
您可能关注的文档
- NaOH 溶液 和 盐酸溶液进行中和热实验报告.doc
- 驻波管法测吸声系数实验指导书.doc
- 物流管理实验报告3.doc
- 实验报告_4完整版.doc
- 实验二实验报告.doc
- 有机化学实验预习报告 2.doc
- 光泵磁共振实验报告_2.doc
- 高一上学期生物实验总结提纲.doc
- 计算机组成原理实验报告 存储器.doc
- 俄罗斯方块实验报告.doc
- 湘教版八年级美术上册测试题及答案2.pdf
- 流通环节食品安全管理人员必备知识参考题库 .pdf
- 福建省漳州市2023-2024学年高一上学期1月期末生物试题 .pdf
- 燕山地区2023-2024学年第一学期期末九年级物理试题及答案 .pdf
- 精品解析:辽宁省大连市第八十中学2023-2024学年八年级上学期期中考试物理试题(原卷版).docx
- 精品解析:辽宁省大连市中山区2023-2024学年九年级上学期期末历史试题(原卷版).docx
- 精品解析:辽宁省大连市沙河口区2023-2024学年八年级上学期期末考试物理试题(原卷版).docx
- 精品解析:辽宁省大连市高新园区2021-2022学年八年级上学期期末考试物理试题(原卷版).docx
- 精品解析:辽宁省大连市金普新区2022-2023学年八年级上学期10月月考物理试题(解析版).docx
- 精品解析:江苏省南京市南京外国语学校2024-2025学年八年级上学期9月月考数学试题(原卷版).docx
文档评论(0)