资源描述:
《汇编语言课程设计报告-电话簿管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电话薄管理1.课程设计的目的汇编语言是一项实用性很强的技术,只有进行实际操作,将理论应用于实际中,才能确实掌握书中的知识点。本课程设计通过设计简单的电话薄管理,设计的程序包含俩大块,一个是从已经定义好的指定的数据存储单元中查找信息,还有一个就是要把从键盘上输入的数据填充到数据储存单元当中去。通过简单的程序,加深学生对汇编程序基本概念的了解,巩固学习成果;还能够提高实际动手能力及对计算机硬件的了解,掌握计算机软件与硬件之间的联系。为学生后续课程的学习,打下良好的基础。2.设计方案论证2.1开发环境硬件:2G内存,250G
2、硬盘,ATIHD4500显卡,InterCorei3CPU。软件:MASM。自二十世纪80年代初Microsoft公司推出MASM1.0以来,目前MASM的版本已升至6.15,支持MMXPentium、PentiumII、PentiumIII及Pentium4指令系统。 MASM4.0支持80286/80287的处理器和协处理器;MASM5.0支持80386/80387处理器和协处理器,并加进了简化段伪定义指令和存储模式伪指令,汇编和连接的速度更快。 MASM6.0是1991年推出的,支持80486处理器,它对MA
3、SM进行重新组织,并提供了许多类似高级语言的新特点。MASM6.0之后又有一些改进,微软又推出MASM6.11,利用它的免费补丁程序可以升级到MASM6.14,支持到PentiumIII指令系统。2.2总体设计功能定义一个数据存储单元第21页,并且在此数据段后面建立足够空间的缓冲区,以便再存入数据。可以通过一个主函数来引导程序的运行,主函数中可以根据用户的需求而调用不同的功能,即里面包括主菜单(这是必需的),依据从键盘输入不同的指令而选取不同的子功能,如查找(searchproc)和插入(insertproc).查找功
4、能的实现:我们为了方便查找,我们将人名和电话号码各以10个字节(不够补空格)为单位存入数据单元中,并且是号码紧挨着人名排,以便查找,在数据单元的尾段开辟足够空间的缓冲区,以便再存入数据进去,就如我所设计代码中的buf,bufdb'ji','54698765',;定义buf存储单元以存储人名和电话号码'liu','69856456','guo','56566898',;其中人名和电话号码都以10个字节为单位存储'zhang','569874123',20dup(10dup(0),10dup(0));开辟的缓冲区查找可用移
5、动指针来比较实现。可设计2个指针,SI和DI再存入功能:其思路和查找的有点雷同,也是通过移动指针来实现的,只不过查找时的指针先移在数据单元的表头,而插入时的指针要移在数据单元中的最后已经存入人的电话号码后。2.3详细设计功能2.3.1主程序功能主菜单:依据从键盘输入不同的指令而选取不同的子功能,如查找(searchproc)和插入(insertproc).第21页Main开始datas->axal=’q’?al=’r’?al=’e’?ax->dsax->es显示主菜单界面键盘输入字符callquerycallinser
6、t结束主菜单流程图第21页2.3.2查找子程序功能queryax->datasax->ds,ax->es0->DFcallipnamecallsearch返回功能:是用于查找从键盘输入人名的所有信息的主程序,内含对输入人名子程序和查找信息的子程序调用查找的子程序searchproc,第21页search功能为:查询信息程序,查询条件为键盘输入人名buf->dipushdicount->bl,0->bh_name+2->si10->cxrepecmpsbcx=0,ZF=1?cx,zf=1?popdidi->si,temp
7、->di,20->cxpopdi,20+di->di,pushdirepmovsbbx-1=0?temp->dx9号功能调用,输出信息输出提示信息返回返回到菜单第21页再存入子程序:insert功能:实现增强功能的程序,将所输的输出提示信息,callipname输出提示信息,callipnumber信息存储在buf中开辟的缓区,成功插入后,count数加一返回0->DF输出提示信息20->alcount->clcount+1->count(al)*(cl)->axdi(IP自动加10),将si中的数据再传入di中buf
8、->dinum+2->si10->cx(di)+(ai)->di_name+2->si10->cx将si中的数据传入di中第21页输入人名的子程序输入电话号码子程序:ipnameprocipnumberprocipnumberipnamenum->dx,10号功能调用_name->dx,10号功能调用0->bh,_num+1->b