资源描述:
《用汇编语言实现电话本功能--课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理课程设计报告一、课程设计目的运用所学的汇编语言写一个具有电话本功能的程序,达到提高动手能力及解决问题的能力。二、设计要求1、能够存储50个电话号码,包括人名(20个字符)、电话号码(8个字符)。2、系统可以随时接受新的人名和电话号码。3、具有随时查询号码的功能。要求输入人名后,在屏幕上显示相应的电话号码。4、具有删除号码的功能。要求输入人名后,系统自动删除相应的号码。5、运行此系统后,要显示菜单选择的功能。三、程序设计思想13每个人的信息包括人名和号码,人名占20个字节,外加一个$字符,电话号码占8
2、个字节,外加一个$字符,所以每个人的信息一共占30个字节。可以开辟一片连续的存储区,包含30*50即1500个字节,即ZHUDB1500DUP(0)。另外再定义四个需要输入信息的变量,依次为:ZHU1DB21,0,21DUP(0);搜索姓名变量ZHU2DB21,0,21DUP(0);添加姓名变量ZHU3DB9,0,9DUP(0);添加号码变量ZHU4DB21,0,21DUP(0);删除姓名变量添加新的人名和号码时,可以通过10号功能调用,先将人名和号码暂时存放在ZHU2和ZHU3中,然后在逐字节地复制到ZH
3、U中,记住在人名和号码末尾加上$字符。查询号码时,将输入的要查询的人名存放在ZHU1中,然后再每隔30个字节与ZHU中的人名逐个字符地比较,若完全相等,则将人名下面的号码输出,否则说明要查询的人名不存在。删除时,先输入要删除的人名,同查询相似,按同样的方法在ZHU中寻找相应的数据区,若找到了,则从找到时下面一个人的信息开始,统一向上移动30个字节,若没有找到,则说明要删除的人名的信息不存在。一、程序框图五、程序清单DATASSEGMENTOBF1DB'Welcometousethisphonebook!$'
4、OBF2DB'Pleasechoosethefunctionbuttom(1/2/3):$'OBF11DB'1forinputing$'OBF16DB'2forsearching$'OBF17DB'3fordeleting$'OBF18DB'Otherforexiting$'OBF3DB'Pleaseinputanewname(within20words):$'OBF4DB'pleaseinputthenumber(within8numbers):$'OBF5DB'Continuetoinput?(y/n)
5、$'OBF6DB'Areyousuretoendthephonebook?(y/n)$'OBF7DB'Pleaseinputanameyouwanttosearch(within20words):$'OBF8DB'Gotit,itis:$'OBF9DB'Havenotfound,itdoesnotexit!$'13OBF10DB'Continuetosearch?(y/n)$'OBF12DB'Pleaseinputthenameyouwanttodelete(within20words):$'OBF13DB
6、'Thenameyouwanttodeletedoesnotexit!$'OBF14DB'Successtodelete!$'OBF15DB'Continuetodelete?(y/n)$'ZHU1DB21,0,21DUP(0);搜索(查询)姓名变量ZHU2DB21,0,21DUP(0);添加姓名变量ZHU3DB9,0,9DUP(0);添加号码变量ZHU4DB21,0,21DUP(0);删除姓名变量ZHUDB1500DUP(0)DATASENDSSTACKSSEGMENTDW32DUP(0)STACKSEN
7、DSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVBP,-30BEGIN:CALLNEXTLINEMOVDX,OFFSETOBF1;显示菜单选择界面MOVAH,9INT21HCALLNEXTLINE;调用换行函数MOVDX,OFFSETOBF2MOVAH,9INT21HCALLNEXTLINEMOVDX,OFFSETOBF11MOVAH,9INT21HCALLNEXTLINEMOVDX,OFFSETOBF16
8、MOVAH,9INT21HCALLNEXTLINEMOVDX,OFFSETOBF17MOVAH,9INT21HCALLNEXTLINEMOVDX,OFFSETOBF1813MOVAH,9INT21HCALLNEXTLINEMOVAL,0MOVAH,1INT21HCMPAL,'1';选择1,输入信息JEINPUTCMPAL,'2';选择2,查询信息JESEARCHCMPAL,'3';选择3,删除信息JEDELETE