1、 微机原理 课 程 设 计 报 告 2 一、 课程设计目的 运用所学的汇编语言写一个具有电话本功能的程序, 达到提高动手能力及解 决问题的能力。 二、 设计要求 1、能够存储 50 个电话号码, 包括人名 (20 个字符) 、 电话号码 (8 个字符) 。 2、系统可以随时接受新的人名和电话号码。 3、具有随时查询号码的功能。要求输入人名后,在屏幕上显示相应的电话 号码。 4、具有删除号码的功能。要求输入人名后,系统自动删除相应的号码。 5、运行此系统后,要显示菜单选择的功能。 三、 程序设计思想 每个人的信息包括人名和号码,人名占 20 个字节,外加一个$字符,电话号 码占 8 个字节,外加
2、一个$字符,所以每个人的信息一共占 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 中,记住在人
3、名和号码末尾 加上$字符。查询号码时,将输入的要查询的人名存放在 ZHU1 中,然后再每隔 30 个字节与 ZHU 中的人名逐个字符地比较,若完全相等,则将人名下面的号码 输出,否则说明要查询的人名不存在。删除时,先输入要删除的人名,同查询相 似,按同样的方法在 ZHU 中寻找相应的数据区,若找到了,则从找到时下面一 个人的信息开始,统一向上移动 30 个字节,若没有找到,则说明要删除的人名 的信息不存在。 四、 程序框图 3 五、程序清单 DATAS SEGMENT OBF1 DB Welcome to use this phone book!$ OBF2 DB Please choose
4、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 Continu