查找字符串中的指定字符程序设计.pdf

上传人:w*** 文档编号:80858287 上传时间:2023-03-23 格式:PDF 页数:20 大小:486.57KB
返回 下载 相关 举报
查找字符串中的指定字符程序设计.pdf_第1页
第1页 / 共20页
查找字符串中的指定字符程序设计.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《查找字符串中的指定字符程序设计.pdf》由会员分享,可在线阅读,更多相关《查找字符串中的指定字符程序设计.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-微机原理与汇编技术 课程设计(论文)查找字符串中的指定字符程序设计 院(系)名 称 专业班级 学号 学生姓名 指导教师 起 止 时 间:2015.12.212015.12.31-课程设计(论文)任务及评语 院(系):教研室:学 号 学生姓名 专业班级 课程设计(论文)题目 查找字符串中的指定字符程序设计 课程设计(论文)任务 设计内容 设计一个程序,能够按要求查找字符串中的字符并按要求显示。性能指标及技术要求 1、设计一个操作界面,提示操作,如:输入一串字符串、输入所查找的字符或字符串等;2、显示出查找到的数目;3、用不同颜色或闪烁标示出所找到的字符或字符串。指导教师评语及成绩 平时成绩:答

2、辩成绩:论文成绩:总成绩:指导教师签字:年 月 日 注:平时成绩占 20%,答辩成绩占 40%,论文成绩占 40%。-摘 要 汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言是直接面向处理器的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指

3、令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。汇编语言所操作的对象不是具体的数据,而是寄存器或者存储器,也就是说它是直接和寄存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂,因为既然数据是存放在寄存器或存储器中,那么必然就存在着寻址方式,也就是用什么方法找到所需要的数据。汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱

4、动程序、嵌入式操作系统和实时运行程序都需要汇编语言。关键词:汇编语言;机器指令;寄存器;存储器 -目 录 第 1 章 前言.1 1.1 背景.1 1.2 基本功能要求.1 第 2 章 程序设计.2 2.1 题目的基本内容.2 2.2 总体流程图.2 2.3 详细说明.3 2.4 主要程序段及其设计分析.3 2.5 运行结果.8 第 3 章 课程设计总结.10 参考文献.11 附录.12-第 1 章 前言 1.1 背景 信息检索是指根据一定的策略、运用特定的计算机程序从互联网上或指定文件中搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。信息检索是获取

5、知识、信息的基本手段。如何有效、快速、准确地在信息海洋中找到人们所需要的信息,使之成为重要资源,已是信息时代人们的重要需求,因而,信息检索技术在信息社会中将发挥越来越重要的作用。主要体现在以下几个方面:第一,能够全面地掌握有关的必要信息,增强决策的科学性。掌握一定量的必要信息,是进行研究、搞好工作的首要条件,也是进行正确决策必不可少的前提条件。科学的决策,源于对信息资料的充分了解与认识,信息检索是国家、部门、单位和个人等决策者获取信息的重要途径。因此,信息检索会使国家、部门、单位和个人的决策建立在科学基础之上,大大增加了决策的科学性,减少了决策的盲目性。第二,提高信息利用的效率,缩短获取信息的

6、时间。信息检索可以使用户在短时间内获取有需求紧密相关的信息,使用户有更多的时间去完成更重要的工作,从而大大提高了工作效率。第三,有利于信息用户获取所需的全部信息。信息检索工作往往依存于一个或多个很大的信息库,信息库中存储着很全面的各种信息。通过信息检索工作,一次就可查获信息用户所需要的全部信息。1.2 基本功能要求 设计一个程序,能够按要求查找字符串中的字符并按要求显示。(1)设计一个操作界面,提示操作,如:输入一串字符串等;(2)显示出查找到的数目;(3)用不同颜色或闪烁标示出所找到的字符或字符串。-第 2 章 程序设计 2.1 题目的基本内容 任务要求:设计一个程序,能够按要求查找字符串中

7、的字符并按要求显示。技术要求:(1)设计一个操作界面,提示操作,如:输入一串字符串等;(2)显示出查找到的数目;(3)用不同颜色或闪烁标示出所找到的字符或字符串。2.2 总体流程图 开始 定义段 设置显示器 设置光标位置 键盘 输入 字符串 结束?清屏 结束 5?1?是 否-2.3 详细说明 通过字符串比较查找字符串,并在查找过程中计数并作为光标的偏移量,以光标偏移量控制变色位置。程序开始,设置操作窗口,设置光标位置,通过键盘选择确定功能“退出”或“查找字符串”,选择“1”时,进入“查找字符串”模块,选择“5”时,直接退出程序。2.4 主要程序段及其设计分析 段定义:STACK SEGMENT

8、 STACK DB 256 DUP(?)TOP LABEL WORD STACK ENDS DATA SEGMENT ;定义数据段 TABLE DW G1,G5 STRING1 DB 1.Find the specified character string,0DH,0AH,$STRING5 DB 5.Exit,0DH,0AH,$STRINGN DB Input the number you select(1 OR 5):$INF1 DB 0DH,0AH,please input string:$INF2 DB 0DH,0AH,0DH,0AH,please input a word:$INF3

9、 DB 0DH,0AH,0DH,0AH,result:$BUFF DB 255 DB?DB 255 DUP(?)OVER DB 1 DB?DB 1 DUP(?)DATA ENDS CODE SEGMENT ;定义代码段 ASSUME DS:DATA,CS:CODE 功能选择模块:BEGIN:MOV AX,DATA MOV DS,AXMOV AX,STACK MOV SS,AX MOV SP,OFFSET TOP-MAIN:CALL FAR PTR MENU ;设置显示器 AGAIN0:MOV AH,2 MOV BH,0 ;页号 MOV DL,41 ;列号 MOV DH,10 ;行号 INT 1

10、0H ;光标位置设置 MOV AH,1 INT 21H CMP AL,1 JB AGAIN0 CMP AL,5 JA AGAIN0 SUB AL,1 ;N-1 SHL AL,1 ;(N-1)*2 CBW ;AL-AX LEA BX,TABLE ADD BX,AX JMP WORD PTR BX G1:CALL FAR PTR CHGLTR MOV AH,8 INT 21H CMP AL,1BH JZ MAIN JMP G1 G5:MOV AH,4CH INT 21H MENU PROC FAR ;显示主界面;设置显示方式 MOV AH,0 MOV AL,3 MOV BL,0 INT 10H ;

11、清屏 MOV AH,2 MOV BH,0 ;页号 MOV DL,5 ;列号 MOV DH,5 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRING1 INT 21H-MOV AH,2 MOV DL,5 ;列号 MOV DH,6 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRING5 INT 21H MOV AH,2 MOV DL,5 ;列号 MOV DH,10 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRINGN INT 21H RET MENU ENDP 清屏:MOV AH,0 MOV AL,3

12、 MOV BL,0 INT 10H ;清屏 输入字符:LEA DX,INF1 ;提示输入字符串 MOV AH,9 INT 21H LEA DX,BUFF ;从键盘输入字符串,按 Enter 结束 MOV AH,0AH INT 21H LEA DX,INF2 ;提示输入查询字符 MOV AH,9 INT 21H LEA DX,OVER MOV AH,1 ;从键盘输入查询字符 INT 21H 查找字符并计数:MOV CL,BUFF+1 ;字符总数 XOR CH,CH LEA SI,BUFF+2 ;字符串首地址 XOR DH,DH-XOR BX,BX ;取字符串的字符与查询字符循环比较 AGAIN:

13、CMP AL,SI JNZ NEXT INC BL ;查询结果个位放在 BL CALL DISP CMP BL,0AH JNZ NEXT INC BH ;查询结果十位放在 BH CALL DISP XOR BL,BL CMP BH,0AH JNZ NEXT INC DH ;查询结果百位放在 DH CALL DISP XOR BH,BH NEXT:INC SI LOOP AGAIN MOV CH,DH LEA DX,OVER ;按 Enter 结束查询字符的输入 MOV AH,0AH INT 21H LEA DX,INF3 ;提示输出结果 MOV AH,9 INT 21H XOR CL,CL C

14、MP CH,CL JZ ER ;若输出结果为两位,则不显示百位 MOV DL,CH ADD DL,30H ;百位转成 ASCII 码 MOV AH,2 ;输出百位 INT 21H JNZ SAN ;但结果为三位数跳转 ER:CMP BH,CL JZ YI ;结果为一位数,则十位为 0 SAN:MOV DL,BH ADD DL,30H ;十位转成 ASCII 码 MOV AH,2 ;输出十位 INT 21H YI:MOV DL,BL ADD DL,30H ;个位转成 ASCII 码 MOV AH,2 ;输出个位 INT 21H LEA DX,OVER ;按 Enter 继续-MOV AH,0AH

15、 INT 21H MOV AH,4CH INT 21H 变色程序:DLY_QRTR PROC NEAR ;延时程序 PUSH CX PUSH DX MOV DX,60000 D11:MOV CX,4000 D12:LOOP D12 DEC DX JNZ D11 POP DX POP CX RET DLY_QRTR ENDP DISP PROC NEAR ;变色程序 PUSH AX ;保护现场 PUSH BX PUSH CX PUSH DX PUSH DI PUSH SI MOV BH,0 MOV DH,0 MOV AL,BUFF+1 ;字符串总长度 ADD AL,100 SUB AL,CL M

16、OV DL,AL ;变色 MOV AH,03 INT 10H MOV AL,SI MOV BL,20 MOV CX,1 MOV AH,09 INT 10H CALL DLY_QRTR ;调用延时程序 POP SI POP DI ;恢复现场-POP DX POP CX POP BX POP AX RET DISP ENDP CHGLTR ENDP CODE ENDS END BEGIN 退出程序:MOV AH,4CH INT 21H 2.5 运行结果 图 2.1 功能选择界面 -图 2.2 查找到结果界面 -图 2.3 未查找到结果界面 第 3 章 课程设计总结 通过本次课程设计,让我更加深刻地

17、理解了课本知识,对以往疏忽的知识得到了补充,加深了对一些概念和专业术语的理解程度。在课程设计中遇到了很多问题,都过查找资料一一得以解决,我相信这本书中还有很多我没有搞清楚的问题,但是这次的课程设计及给了我相当扎实的基础知识,为我以后工作打下了坚实的基础。虽然这次课程设计是那么短暂的两周时间,但我感觉这些天我的所学胜过我这一学期所学,让我对课本知识得到了熟悉和应用,是我做事的耐心和仔细程度得以提高。课程设计是培训学生运用本专业所学的理论知识和专业知识来分析解决实际问题的重要教学环节,是对所学知识的复习和巩固。同样,也促进了同学们的相互探讨、相互学习。因此,我们必须认真、谨慎、踏实、一步一步的完成

18、设计。课程设计是一个重要的教学环节,通过课程设计使我们了解到一些实际与理论之间的差异。通过课程设计不仅可以巩固专业知识,为以后的工作打下坚实的基础,而且还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。只有在不断的尝试中,经历失败,从失败中总结经验,然后再不断的尝试,才能获得成功。本人签字:-参考文献 1 周杰英,张萍等编著.微机原理、汇编语言与接口技术.北京:人民邮电出版社,20

19、11 2 沈美明,温冬婵.IBM-PC 汇编语言程序设计.北京:清华大学出版社,2012 3 钱晓捷.基于 Windows 环境的汇编语言程序设计.北京:清华大学出版社,2012 4 Peter Abel.IBM-PC 汇编语言程序设计.北京:人民邮电出版社,2002 5 傅德胜,孙文静.高级汇编语言程序设计及应用.南京:东南大学出版社,2009-附录 源程序代码 STACK SEGMENT STACK DB 256 DUP(?)TOP LABEL WORD STACK ENDS DATA SEGMENT ;定义数据段 TABLE DW G1,G5 STRING1 DB 1.Find the

20、specified character string,0DH,0AH,$STRING5 DB 5.Exit,0DH,0AH,$STRINGN DB Input the number you select(1 OR 5):$INF1 DB 0DH,0AH,please input string:$INF2 DB 0DH,0AH,0DH,0AH,please input a word:$INF3 DB 0DH,0AH,0DH,0AH,result:$BUFF DB 255 DB?DB 255 DUP(?)OVER DB 1 DB?DB 1 DUP(?)DATA ENDS CODE SEGMENT

21、;定义代码段 ASSUME DS:DATA,CS:CODE BEGIN:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SP,OFFSET TOP MAIN:CALL FAR PTR MENU ;设置显示器 AGAIN0:MOV AH,2 MOV BH,0 ;页号 MOV DL,41 ;列号 MOV DH,10 ;行号 INT 10H ;光标位置设置 MOV AH,1 INT 21H CMP AL,1 JB AGAIN0 CMP AL,5 JA AGAIN0-SUB AL,1 ;N-1 SHL AL,1 ;(N-1)*2 CBW ;AL-AX

22、LEA BX,TABLE ADD BX,AX JMP WORD PTR BX G1:CALL FAR PTR CHGLTR MOV AH,8 INT 21H CMP AL,1BH JZ MAIN JMP G1 G5:MOV AH,4CH INT 21H MENU PROC FAR ;显示主界面;设置显示方式 MOV AH,0 MOV AL,3 MOV BL,0 INT 10H ;清屏 MOV AH,2 MOV BH,0 ;页号 MOV DL,5 ;列号 MOV DH,5 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRING1 INT 21H MOV AH,2 M

23、OV DL,5 ;列号 MOV DH,6 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRING5 INT 21H MOV AH,2 MOV DL,5 ;列号 MOV DH,10 ;行号 INT 10H ;光标位置设置 MOV AH,9 LEA DX,STRINGN-INT 21H RET MENU ENDP CHGLTR PROC FAR MOV AH,0 MOV AL,3 MOV BL,0 INT 10H ;清屏 LEA DX,INF1 ;提示输入字符串 MOV AH,9 INT 21H LEA DX,BUFF ;从键盘输入字符串,按 Enter 结束 MOV

24、 AH,0AH INT 21H LEA DX,INF2 ;提示输入查询字符 MOV AH,9 INT 21H LEA DX,OVER MOV AH,1 ;从键盘输入查询字符 INT 21H MOV CL,BUFF+1 ;字符总数 XOR CH,CH LEA SI,BUFF+2 ;字符串首地址 XOR DH,DH XOR BX,BX ;取字符串的字符与查询字符循环比较 AGAIN:CMP AL,SI JNZ NEXT INC BL ;查询结果个位放在 BL CALL DISP CMP BL,0AH JNZ NEXT INC BH ;查询结果十位放在 BH CALL DISP XOR BL,BL

25、CMP BH,0AH JNZ NEXT INC DH ;查询结果百位放在 DH CALL DISP XOR BH,BH NEXT:INC SI LOOP AGAIN MOV CH,DH LEA DX,OVER ;按 Enter 结束查询字符的输入-MOV AH,0AH INT 21H LEA DX,INF3 ;提示输出结果 MOV AH,9 INT 21H XOR CL,CL CMP CH,CL JZ ER ;若输出结果为两位,则不显示百位 MOV DL,CH ADD DL,30H ;百位转成 ASCII 码 MOV AH,2 ;输出百位 INT 21H JNZ SAN ;但结果为三位数跳转

26、ER:CMP BH,CL JZ YI ;结果为一位数,则十位为 0 SAN:MOV DL,BH ADD DL,30H ;十位转成 ASCII 码 MOV AH,2 ;输出十位 INT 21H YI:MOV DL,BL ADD DL,30H ;个位转成 ASCII 码 MOV AH,2 ;输出个位 INT 21H LEA DX,OVER ;按 Enter 继续 MOV AH,0AH INT 21H MOV AH,4CH INT 21H DLY_QRTR PROC NEAR ;延时程序 PUSH CX PUSH DX MOV DX,60000 D11:MOV CX,4000 D12:LOOP D1

27、2 DEC DX JNZ D11 POP DX POP CX RET DLY_QRTR ENDP DISP PROC NEAR ;变色程序 PUSH AX ;保护现场 PUSH BX-PUSH CX PUSH DX PUSH DI PUSH SI MOV BH,0 MOV DH,0 MOV AL,BUFF+1 ;字符串总长度 ADD AL,100 SUB AL,CL MOV DL,AL ;变色 MOV AH,02 INT 10H MOV AL,SI MOV BL,20 MOV CX,1 MOV AH,09 INT 10H CALL DLY_QRTR ;调用延时程序 POP SI POP DI ;恢复现场 POP DX POP CX POP BX POP AX RET DISP ENDP CHGLTR ENDP CODE ENDS END BEGIN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁