首页 汇编语言程序设计综合实验报告

汇编语言程序设计综合实验报告

举报
开通vip

汇编语言程序设计综合实验报告姓名 学号 班级 成绩 西安财经学院信息学院 《汇编语言程序设计》    实验报告 实验名综合实验程序设计     实验室       实验日期 2010-12-15 一、实验目的及要求 1.悉debug命令,学习汇编语言的调试环境; 2.熟练撑握一些简单程序的调试,理解基本的顺序结构、分支结构、循环结构及子程序的调试过程; 3.通过对一些综合程序的调试,加深对各种结构程序的理与学习掌握汇给语言编程思想。 二、实验环境 硬件环境:一台微型计算机; 软件环境:windows xp,debug...

汇编语言程序设计综合实验报告
姓名 学号 班级 成绩 西安财经学院信息学院 《汇编语言程序设计》    实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 实验名综合实验程序设计     实验室       实验日期 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 五、调试与测试 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.用U命令返汇编,对所输入的名字进行排序并输出,程序正常结束; 五、[源程序清单] Data segment namepar label byte maxnlen db 21 namelen db ? namefld db 21 dup(?) crlf db 13,10,'$' endaddr dw ? messg1 db 'name?','$' messg2 db 'sorted names',13,10,'$' namectr db 0 nametab db 30 dup (20 dup(' ')) namesav db 20 dup (?),13,10,'$' swapped db 0 Data ends Code segment main proc far assume cs:code,ds:data,es:data start: push ds mov ax,0 push ax mov ax,data mov ds,ax mov es,ax cld lea di,nametab a20loop: call b10read cmp namelen,0 jz a30 cmp namectr,30 je a30 call d10stor jmp a20loop a30: cmp namectr,1 jbe a40 call g10sort call k10disp a40: mov ax,4c00h Int 21h Main endp b10read proc near mov ah,09 lea dx ,messg1 int 21h mov ah,0ah lea dx,namepar int 21h mov ah,09 lea dx,crlf int 21h mov bh,0 mov bl ,namelen mov cx,21 sub cx,bx b20: mov namefld[bx],20h inc bx loop b20 ret b10read endp d10stor proc near inc namectr cld lea si,namefld mov cx,10 rep movsw ret d10stor endp g10sort proc near sub di ,40 mov endaddr,di g20: mov swapped,0 lea si,nametab g30: mov cx,20 mov di,si add di,20 mov ax,di mov bx,si repe cmpsb jbe g40 call h10xchg g40: mov si,ax cmp si,endaddr jbe g30 cmp swapped,0 jnz g20 ret g10sort endp h10xchg proc near mov cx,10 lea di , namesav mov si,bx rep movsw mov cx,10 mov di,bx rep movsw mov cx ,10 lea si,namesav rep movsw mov swapped,1 ret h10xchg endp k10disp proc near mov ah,09 lea dx,messg2 int 21h lea si,nametab k20: lea di,namesav mov cx,10 rep movsw mov ah,9 lea dx, namesav int 21h dec namectr jnz k20 ret K10disp endp code ends end start 六. 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 1.通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。 2.通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环、分支、子程序等结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。 3.在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读和调试一定规模的汇编语言程序的水平。  
本文档为【汇编语言程序设计综合实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_954223
暂无简介~
格式:doc
大小:55KB
软件:Word
页数:0
分类:工学
上传时间:2019-09-09
浏览量:39