查找匹配字符串程序设计.docx
- 文档编号:12485184
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:11
- 大小:154.22KB
查找匹配字符串程序设计.docx
《查找匹配字符串程序设计.docx》由会员分享,可在线阅读,更多相关《查找匹配字符串程序设计.docx(11页珍藏版)》请在冰豆网上搜索。
查找匹配字符串程序设计
中北大学
汇编语言程序设计
课程设计说明书
学生姓名:
学号:
学院:
信息与通信工程学院
专业:
自动化
题目:
查找匹配字符串程序设计
指导教师:
沈小林安道新职称:
副教授助教
2011年6月25日
中北大学
汇编语言程序设计实验
课程设计任务书
10/11学年第二学期
学院:
信息与通信工程学院
专业:
自动化
学生姓名:
学号:
课程设计题目:
查找匹配字符串程序设计
起迄日期:
06月20日~06月25日
课程设计地点:
中北大学
指导教师:
沈小林安道新
系主任:
王忠庆
下达任务书日期:
2011年06月20日
课程设计任务书
1.设计目的:
通过对任意字符串中是否有匹配字符串的检索,掌握分支及循环程序设计及调试过程。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
1、程序要求
(1)由键盘输入一个长度不大于80个字符的字符串,回车键结束;
(2)由键盘输入匹配任意字符串,以回车键结束;
(3)检索上述字符串中是否含有匹配字符串,若有,屏幕显示“Matched”;否则显示“NotMatched”。
2、设计内容
(1)根据要求确定解决问题的编程方法;
(2)画出模块层次图;
(3)写出各模块说明;
(4)按照要求调试程序,记录程序运行结果;
(5)写出设计总结报告。
设计报告主要内容包括:
设计目的与要求、系统技术指标或设计要求、程序设计方案、主要参考资料及心得体会等
3.设计工作任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等〕:
设计总结;程序清单;程序框图;参考文献等。
【注】装订时依照封面、任务书、设计总结顺序一起装订。
课程设计任务书
4.主要参考文献:
●要求按国标GB7714—87《文后参考文献著录规则》书写,例:
1傅承义,陈运泰,祁贵中.地球物理学基础.北京:
科学出版社,1985
参考资料不得少于10篇
5.设计成果形式及要求:
设计总结;程序清单(附注释);参考文献等。
6.工作计划及进度:
6月20日~6月21日
6月22日~6月22日
6月23日~6月24日
6月25日~6月25日
调研、资料收集;
设计方案确定,设计程序
程序调试、程序必须调试通过。
撰写总结、设计报告答辩
系主任审查意见:
签字:
年月日
一、绪论
汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。
高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。
在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。
现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。
汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
二、程序设计目的及程序设计要求
通过对任意字符串中是否有匹配字符串的检索,掌握分支及循环程序设计及调试过程。
本次课程设计的任务是设计一个查找匹配字符串的程序,程序的具体功能是接收用户由键盘输入一个长度不大于80个字符的字符串,回车键结束;由键盘输入匹配任意字符串,以回车键结束;如果句子中不包含关键字则显示‘NOmatch!
’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。
该程序实现的功能是查找匹配的字符串。
在程序中用“EnterSentence:
”表示输入一个长度不大于80个字符的字符串的提示符,即句子;“Enterkeyword:
”表示输入匹配字符串的提示符,即关键字。
三、程序模块图
四、程序清单
DATASEGMENT
mess1DB'Enterkeyword:
','$'
mess2DB'EnterSentence:
','$'
mess3DB'match','$'
mess4DB'nomatch',13,10,'$'
changeDB13,10,'$'
stoknin1labelbyte
max1db10
act1db?
stokn1db10dup(?
)
stoknin2labelbyte
max2db50
act2db?
stokn2db50dup(?
)
DATAENDS
STACKSSEGMENT;此处输入堆栈段代码
STACKSENDS
CODESEGMENT;*************************************代码段
mainprocfar
assumecs:
code,ds:
data,es:
data
START:
pushds
subAX,AX
subBX,BX
subDI,DI
subSI,SI
pushAX;为返回dos并清空后面要用到的寄存器
MOVAX,DATA
MOVDS,AX
LEADX,mess1
MOVah,09
INT21h;输出Enterkeyword
LEADX,stoknin1
MOVah,0ah;用21号中段的0ah号功能获取关键字
INT21h
cmpact1,0
jeexit;如果为空直接退出程序
a10:
;********************************输入Sentence并判断
LEADX,change
MOVah,09
INT21h;输出回程,换行
LEADX,mess2
MOVah,09
INT21h;输出EnterSentence:
LEADX,stoknin2
MOVah,0ah
INT21h;用21号中段的0ah号功能获取句子
MOVAL,act1
CBW
MOVCX,AX;保存关键字长度到cx
PUSHCX;cx入栈
MOVAL,act2
cmpAL,0
jea50;保存句子长度到al,若句子为空则跳转显示notmatch
SUBAL,act1
jsa50;若句子长度小于关键字长度,则跳转显示notmatch
INCAL
CBW
LEABX,stokn2;将句子的首地址放进BX
MOVDI,0
MOVSI,0
a20:
;****************************************比较,内循环
MOVAH,[BX+DI]
CMPAH,stokn1[SI];遇见字符不相等就跳转到a30
jnea30
INCDI
INCSI
DECCX;没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完
CMPCX,0
jea40
jmpa20
exit:
ret
mainendp
a30:
;*****************************************外循环,BX+1,清空si,di继续内循环比较
INCBX
DECAL
cmpAL,0
jea50
MOVDI,0
MOVSI,0
POPCX
pushCX
jmpa20
a40:
;*****************************************match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出
LEADX,change
MOVah,09
INT21h
LEADX,mess3
MOVah,09
INT21h
jmpa10
a50:
;*****************************************显示notmatch
LEADX,change
MOVah,09
INT21h
LEADX,mess4
MOVah,09
INT21h
jmpa10
CODEENDS
ENDSTART
五、调试过程及运行结果截图
调试过程
运行结果
七、参考资料
1、易小琳.计算机组成原理与汇编语言.清华大学出版社,2009
2、王让定.汇编语言与接口技术(第3版).清华大学出版社,2011
3、朱耀庭,姬秀娟,罗涛.汇编语言程序设计.清华大学出版社,2011
4、秦莲,姬伟峰.汇编语言实用教程--基于WIN32编程.电子工业出版社,2008
5、郑晓薇.汇编语言.机械工业出版社,2010
6、李继灿等.新编16/32位微型计算机原理及应用.北京:
清华大学出版社,2001
7、郑学坚.微型计算机技术及应用.北京:
清华大学出版社,2002
8、戴梅萼.微型计算机技术及应用.北京:
清华大学出版社,2003
9、李朝纯.微型计算机原理与接口技术.武汉:
武汉理工大学出版社,2003
10、刘星.微机原理与接口技术.北京:
电子工业出版社,2002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查找 匹配 字符串 程序设计