5653612441用汇编语言实现电话本功能课程设计.doc
《5653612441用汇编语言实现电话本功能课程设计.doc》由会员分享,可在线阅读,更多相关《5653612441用汇编语言实现电话本功能课程设计.doc(13页珍藏版)》请在三一办公上搜索。
1、微机原理 课 程 设 计 报 告一、 课程设计目的运用所学的汇编语言写一个具有电话本功能的程序,达到提高动手能力及解决问题的能力。二、 设计要求1、 能够存储50个电话号码,包括人名(20个字符)、电话号码(8个字符)。2、 系统可以随时接受新的人名和电话号码。3、 具有随时查询号码的功能。要求输入人名后,在屏幕上显示相应的电话号码。4、 具有删除号码的功能。要求输入人名后,系统自动删除相应的号码。5、 运行此系统后,要显示菜单选择的功能。三、 程序设计思想每个人的信息包括人名和号码,人名占20个字节,外加一个$字符,电话号码占8个字节,外加一个$字符,所以每个人的信息一共占30个字节。可以开
2、辟一片连续的存储区,包含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个字节
3、与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 f
4、or 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(
5、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?(
6、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 ENDSSTACKS SEGMENT DW 32 DUP(0) STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATAS MOV DS,AX MOV BP,-30BEGIN:CALL NEX
7、TLINE MOV DX,OFFSET OBF1 ;显示菜单选择界面 MOV AH,9 INT 21H CALL NEXTLINE ;调用换行函数 MOV DX,OFFSET OBF2 MOV AH,9 INT 21H CALL NEXTLINE MOV DX,OFFSET OBF11 MOV AH,9 INT 21H CALL NEXTLINE MOV DX,OFFSET OBF16 MOV AH,9 INT 21H CALL NEXTLINE MOV DX,OFFSET OBF17 MOV AH,9 INT 21H CALL NEXTLINE MOV DX,OFFSET OBF18 MOV
8、 AH,9 INT 21H CALL NEXTLINE MOV AL,0 MOV AH,1 INT 21H CMP AL,1 ;选择1,输入信息 JE INPUT CMP AL,2 ;选择2,查询信息 JE SEARCH CMP AL,3 ;选择3,删除信息 JE DELETE JMP STOP INPUT: CALL NEXTLINE ADD BP,30 MOV SI,BP S2:MOV BYTE PTR ZHUSI,0 ;清除ZHU中最后一个人的信息后面的30 INC SI ; 个字节中非0的单元 CMP SI,0 JNE S2 MOV SI,BP MOV DX,OFFSET OBF3 M
9、OV AH,9 INT 21H MOV DX,OFFSET ZHU2 ;输入的人名存放在ZH2中 MOV AH,10 INT 21H MOV BX,-1 S5:INC BX ;为避免ZHU2中刚输入的信息没有完全覆 CMP BYTE PTR ZHU2BX+2,0DH ;盖上一次的信息,将出车符(0DH)及其后 JNE S5 ;面的字节归0 S6:MOV BYTE PTR ZHU2BX+2,0 INC BX CMP BX,20 JNE S6 MOV BYTE PTR ZHU2BX+2,0DH MOV CX,20 MOV BX,-1 S1:INC BX ;将ZH2复制到ZHU中 MOV DL,BY
10、TE PTR ZHU2BX+2 MOV BYTE PTR ZHUSI+BX,DL LOOP S1 MOV BYTE PTR ZHUSI+20,$ CALL NEXTLINE MOV DX,OFFSET OBF4 MOV AH,9 INT 21H MOV DX,OFFSET ZHU3 MOV AH,10 INT 21H MOV BX,-1 S7:INC BX ;为避免刚输入的号码没有完全覆盖上一次的号码,将这次输 CMP BYTE PTR ZHU3BX+2,0DH ; 入的号码的最后一位的回车符(0DH)换成$ JNE S7 MOV BYTE PTR ZHU3BX+2,$ ADD SI,21 M
11、OV CX,8 MOV BX,-1 S3:INC BX MOV DL,BYTE PTR ZHU3BX+2 MOV BYTE PTR ZHUSI+BX,DL LOOP S3 MOV BYTE PTR ZHUSI+8,$ CALL NEXTLINE MOV DX,OFFSET OBF5 MOV AH,9 INT 21H CALL NEXTLINE MOV AH,1 INT 21H CMP AL,Y JE INPUT CMP AL,y JE INPUT JMP BEGINSTOP: CALL NEXTLINE MOV DX,OFFSET OBF6 MOV AH,9 INT 21H MOV AL,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5653612441 汇编语言 实现 电话本 功能 课程设计
链接地址:https://www.31ppt.com/p-3039287.html