微机原理(用汇编语言实现电话本功能)课程设计.doc
文本预览下载声明
微机原理
课 程 设 计 报 告
学 号: 200604135156
姓 名: 朱 庆 春
学 院: 信息科学与工程学院
专 业: 电子信息工程
班 级: 0605班
指导教师: 熊 庆 国
课程设计目的
运用所学的汇编语言写一个具有电话本功能的程序,达到提高动手能力及解决问题的能力。
设计要求
能够存储50个电话号码,包括人名(20个字符)、电话号码(8个字符)。
系统可以随时接受新的人名和电话号码。
具有随时查询号码的功能。要求输入人名后,在屏幕上显示相应的电话号码。
具有删除号码的功能。要求输入人名后,系统自动删除相应的号码。
运行此系统后,要显示菜单选择的功能。
程序设计思想
每个人的信息包括人名和号码,人名占20个字节,外加一个$字符,电话号码占8个字节,外加一个$字符,所以每个人的信息一共占30个字节。可以开辟一片连续的存储区,包含30*50即1500个字节,
即ZHU DB 1500 DUP(0)。
另外再定义四个需要输入信息的变量,依次为:
ZHU1 DB 21,0,21 DUP(0) ;搜索姓名变量
ZHU2 DB 21,0,21 DUP(0) ;添加姓名变量
ZHU3 DB 9,0,9 DUP(0) ;添加号码变量
ZHU4 DB 21,0,21 DUP(0) ;删除姓名变量
添加新的人名和号码时,可以通过10号功能调用,先将人名和号码暂时存放在ZHU2和ZHU3中,然后在逐字节地复制到ZHU 中,记住在人名和号码末尾加上$字符。查询号码时,将输入的要查询的人名存放在ZHU1中,然后再每隔30个字节与ZHU中的人名逐个字符地比较,若完全相等,则将人名下面的号码输出,否则说明要查询的人名不存在。删除时,先输入要删除的人名,同查询相似,按同样的方法在ZHU中寻找相应的数据区,若找到了,则从找到时下面一个人的信息开始,统一向上移动30个字节,若没有找到,则说明要删除的人名的信息不存在。
程序框图
五、程序清单
DATAS SEGMENT
OBF1 DB Welcome to use this phone book!$
OBF2 DB Please choose the function buttom(1/2/3):$
OBF11 DB 1 for inputing$
OBF16 DB 2 for searching$
OBF17 DB 3 for deleting$
OBF18 DB Other for exiting$
OBF3 DB Please input a new name(within 20 words):$
OBF4 DB please input the number(within 8 numbers):$
OBF5 DB Continue to input?(y/n)$
OBF6 DB Are you sure to end the phone book?(y/n)$
OBF7 DB Please input a name you want to search(within 20 words):$
OBF8 DB Got it,it is:$
OBF9 DB Have not found ,it does not exit!$
OBF10 DB Continue to search?(y/n)$
OBF12 DB Please input the name you want to delete(within 20 words):$
OBF13 DB The name you want to delete does not exit!$
OBF14 DB Success to delete!$
OBF15 DB Continue to delete?(y/n)$
ZHU1 DB 21,0,21 DUP(0) ;搜索(查询)姓名变量
ZHU2 DB 21,0,21 DUP(0) ;添加姓名变量
ZHU3 DB 9,0,9 DUP(0) ;添加号码变量
ZHU4 DB 21,0,21 DUP(0) ;删除姓名变量
ZHU DB 1500 DUP(0)
DATAS ENDS
STACKS SEGMENT
DW 32 DUP(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STA
显示全部