版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程设计说明书课程名称: 微机原理课程设计题目 : 查找字符串中的指定字符院系:数学与大数据学院专业班级:应用物理学号:学生姓名:指导教师:2017 年 6 月 16 日安徽理工大学课程设计(论文)任务书数学与大数据院系信计教研室学号学生姓名专业(班级)应用物理设计题目查找字符串中的指定字符设计技术参数程序算法框图的设计程序代码的编写程序调试课程设计说明书的书写设 计 要 求设计报告要求文字通顺,语言流畅,无错别字,统一用A4纸打印, 不少于12 页;设计报告中图表、附注、参考文献、公式一律采用阿拉伯数字连续(或分章)编号。图序及图名置于图的下方居中;表序及表名置于表的上方居中。工 作 量查阅相
2、关材料,完成设计,完成设计报告工 作 计 划综合论证,确定设计方案。查阅资料,完成设计。完成设计报告。参 考 资 料李伯成. 微型计算机原理及应用M. 西安电子科技大学出版社,1998陈忠强. 现代微机原理与接口技术M. 冶金工业出版社.2006郭兰英. 微机原理与接口技术M. 清华大学出版社. 2006周明德. 微型计算机系统原理及应用M. 北京:清华大学出版社楼顺天, 周社佳. 微机原理与接口技术M 北京:科学出版社,2006.指导教师签字教研室主任签字月日安徽理工大学课程设计(论文)成绩评定表学生姓名:学号:专业班级:应用物理课程设计题目:查找字符串中的指定字符指导教师评语:成绩:指导教
3、师: I II TOC o 1-5 h z 一、背景及研究意义1二、设计思路2三、程序设计2程序中用到的dos调用2程序中主要汇编指令3程序设计框图4四、程序主要代码分析6数据段代码6显示提示字符代码段6字符段输入代码段6字符比较代码段7结果输出代码段8五、程序调试与结果分析9运行结果9问题分析10六、总结与心得体会11参考文献1213 2-1 设计思路 一、背景及目的研究意义汇编语言是面向机器的程序设计语言。在计算机发展的初期,人们是用机器指令码(二进制编码)来编写程序的,这就称为机器语言。但是机器语言无明显的特征,不好理解和记忆,也不便于学习,在编制程序时极易出错。所以,人们就用助记符代替
4、操作码,用符号来代替地址,这就是汇编语言阶段。在汇编语言中,用助记符代替操作码,用地址符号代替操作码。这样的符号代替机器语言的二进制码,就把机器语言变成汇编语言。于是汇编语言又被叫做符号语言。使用汇编语言编写的程序,机器不能直接识别,要通过一种程序将汇编语言翻译成机器语言,这种其翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。高级汇编程序如MASM 、 TASM 等为我们在编写汇编程序提供了很多类似高级语言的特征,比如结构化、抽象等。 在这种环境下编写的程序, 有很大一部分是伪指令,已经跟高级语言很像了,即使全部用汇编语言来编写 windows 程序也是可行的。汇编语言作为面向
5、机器的语言,通过对该语言的学习,能够加深对计算机内部器件原理以及工作方式的理解。学习汇编语言时也需要懂得每句代码运行后,CPU 的寄存器和储存器的内容变更,理解芯片如何运行每个指令的,从而加深对计算机硬件的理解。而本次课程设计的课题,查找字符串中指定字符将运用到汇编语言中的基本指令以及分支和循环语句。本次课程设计不仅可以更加熟练的掌握汇编的语句和指令, 还可以把课堂上学习到的理论知识和实践结合起来,提高个人的动手能力和独立思考的能力。通过设计过程,要熟悉并且掌握微机系统的软件设计方法、设计步骤,以及学会在程序编写过成中发现问题,分析问题与解决问题的能力。还要加深对汇编语言的理解,在以后的应用中
6、更加的熟练。二、设计思路首先按照课程设计要求在字符和字符串输入前要显示一串提示符,然后输入一个字符串,显示在窗口上,再次提示输入一个字符。比较字符串中字符与这个字符是否相同,并记相同的个数。其中代码核心部分就是比较与输出,这部分代码的设计思路如下:.首先利用循环程序输入一个字符串,判断是否有回车输入,有则跳出字符串的输入程序,并且保存到数据段中。.然后输入字符,然后保存到数据段中。.利用循环程序逐个比较,如相同,则计数加1,直到比较完,记录相同字符的个数,并换行输出。输入字符串存入数据段输出结果三、程序设计程序中用到的dos调用键盘输入并显示(1 号功能调用)格式: MOV AH,01HINT
7、 21H功能:按下任何键,将其对应字符的ASCII 码送入 AL 中,并在屏幕上显示该字符。如果按下的是Ctrl Break 组合键,则终止程序执行。1 号功能调用无须入口参数,出口参数在AL 中。屏幕显示格式: MOV DX, 字符串的偏移地址MOV AH, 09HINT 21H功能:在屏幕上显示字符串。在使用 9 号功能调用时,应当注意以下问题。待显示的字符串必须先放在内存一数据区(DS 段)中,且以$符号作为结束标志。应当将字符串首地址的段基址和偏移地址分别存入DS 和 DX 寄存器中。字符串输入功能调用(0AH 号功能调用)格式: MOV DX, 已定义缓冲区的偏移地址MOV AH,
8、0AHINT 21H功能:从键盘接收字符,并存放到内存缓冲区。在使用 0AH 号功能调用时,应当注意以下问题:执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH 在内,不能为“0”值。第二个字节保留,在执行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII 码。应当将缓冲区首地址的段基址和偏移地址分别存入DS 和 DX 寄存器中。返回DOS 操作系统(4CH 号功能调用)格式: MOV AH, 4CHINT 21H功能:终止当前程序的运行,并把控制权交给调用的程序,即返回DOS 系统,屏幕出现DOS 提示符,如
9、“C: ”,等待DOS 命令。 、汇编指令CMP 比较指令比较指令完成两个操作数相减,使结果反映在标志位上,但两操作数不变。格式:CMP AX,BX具体的说,比较指令可使累加器与立即数、任一通用寄存器或任一内存操作数相比较;也可以使任一通用寄存器与立即数、其他寄存器或任一内存操作数相比较;也可以使内存操作数与立即数或任一寄存器相比较。在比较指令之后,根据ZF 标志即可判断两者是否相等,若两者相等,相减以后结果为0,则ZF 标志为1;否则为0。根据ZF 标志位形成的的条件转移指令格式: JNZ Label这是当 ZF 标志等于0 时,能转移到目标地址(Label)的条件转移指令。LEA 加载有效
10、地址计算源操作数的有效地址(即段内偏移量)并存储至目标操作数。源操作数是一个内存单元(可用各种寻址方式),目标操作数是一个通用寄存器。XOR 执行按位逻辑异或格式: XOR DOPD,SOPD这条指令对两个指定的操作数进行“异或”运算,当进行“异或”的两位不相同时(即一个为1,一个为0),“异或”的结果为1;否则为0.异或运算的结果送回一个操作数。在本课题中用此条命令对AX 寄存器清零操作。3.3 程序设计框图字符串输入框图3-1 字符串输入框图3-2 比较与输出框图 3-2 比较与输出框图 3.3.2比较与输出框图输出提示符2,并输入比较字符BL+1INC DI输入提示符3输出形同字符个数结
11、束 四、主要代码分析数据段代码data segmenttip1 db please input a string:,0dh,0ah,$ tip2 db please input a word:,0dh,0ah,$ tip3 db 0dh,0ah,The result is:,$ str1 db 256 dup(?)str2 db 256 dup(?)count db ?data ends显示提示符代码段start:mov ax,datamov ds,axmov cx,0lea dx,tip1mov ah,09h;显示提示符1int 21h将伪地址段装入段寄存器中,并且输出第一条提示语句。字符串
12、输入段代码input:cmp cx,09hjz nextmov ah,01h;输入字符串int 21hmov di,almov si,alinc diinc siinc cxcmp al,0dh jnz inputnext:mov al,$mov si,al键盘输入字符,并且在每次输入之后判断是否为回车,若是, 结束输入并插入结尾标志“$”,若不是回车,则循环继续输入,并在窗口显示输入的字符串。字符比较代码段xor ax,ax;将 ax寄存器清零lea dx,tip2;显示提示符2mov ah,09hint 21hmov ah,01h;输入比较字符int 21hlea si,countmov
13、si,almov bl,30hlea di,str2cmp2:cmp al,dijnz cmp1inc blcmp1:inc diloop cmp2mov dl,0ah首先,需要对AX 寄存器进行清零操作,因为AX 寄存器若不为0,对接下来的两个字符的比较会产生较大影响。之后输出第二条提示语句,提示输入要进行比较的字符。用 bl 寄存器来计字符相同的个数。在 cmp2 程序段中比较,若不同,直接调到cmp1 中取下一个字符比较,若相同则bl+1 在进入 cmp1 中取下一个字符进行比较。结果输出程序段lea dx,tip3mov ah,09hint 21hmov ah,02hint 21hmo
14、v dl,blint 21h五、程序调试与结果分析运行结果程序运行开始界面5-1 输出结果1输入一个字符串后的界面5-2 输出结果2输入一个字符后立即出结果界面问题分析问题1:程序运行时,当执行查找功能时出现乱码。问题2:当输入10 个及以上相同的字符时,再查找该字符,程序会出现错误。通过对这些问题的分析、查找资料以及讨论后的一些方案如下:问题 1:原因是系统不能确定是否结束输出,所以会出现乱码。设计程序时设置按回车结束输出,或者在输入字符后加“$”符号。问题2: 原因是 9 的 ASCII 码后面一位不是10而是 “: ” 所以结果为10 时会输出0:而不是10。在输入代码段加入跳转代码,当
15、输入字符数到达10 个时自动结束输入。六、总结与心得体会通过对这程序的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。当然, 在程序的编写与设计的过程中也发现了一些问题,比如说出现乱码的问题。 当时不太清楚这段乱码出现的原因,但是去网上搜索这问题,发现也有些人和我一样的粗心大意,并且有人给出了很好的方法解决了这个问题。还有问题2 是问了一个同学,他跟我解释了这个输出ASCII 问题。 但是我用了一个比较笨的方法解决了
16、这个问题。这让我觉得团队合作的重要性以及搜索知识的能力的锻炼。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻, 掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己的思考以及和与同学的讨论中,终于迎刃而解。参考文献 TOC o 1-5 h z 李伯成 . 微型计算机原理
17、及应用M. 西安电子科技大学出版社,1998陈忠强 . 现代微机原理与接口技术M. 冶金工业出版社.2006郭兰英 . 微机原理与接口技术M. 清华大学出版社. 2006周明德 . 微型计算机系统原理及应用M. 北京:清华大学出版社楼顺天 , 周社佳 . 微机原理与接口技术M. 北京:科学出版社,2006胡汉才 . 微机原理与接口技术课程设计M. 北京:清华大学出版,1996付家才 . 微型计算机及其接口技术学习指导与题典M. 北京:化学工业出版社, 2004潘新民 . 微型计算机控制技术M. 北京:人民邮电出版社,1999.9余锡存 , 曹国华 . 汇编语言、微机原理及接口技术M. 陕西 :
18、西安电子科技大 TOC o 1-5 h z 学出版社,2000雷丽文 . 微机原理与接口技术M. 北京:电子工业出版社,1997李银华 . 电子线路技术指导M. 北京:北京航空航天大学出版社,2005data segmenttip1 db please input a string:,0dh,0ah,$ tip2 db please input a word:,0dh,0ah,$ tip3 db 0dh,0ah,The result is:,$ str1 db 256 dup(?)str2 db 256 dup(?)count db ?data endsstack segmentstack endscode segmentassume ds:data,cs:code,ss:stackstart:mov ax,datamov ds,axmov cx,0lea dx,tip1mov ah,09h;显示提示符1int 21hlea di,str1lea si,str2input:cmp cx,09hjz nextmov ah,01h;输入字符串int 21hmov di,almov si,alinc diinc siinc cxcmp al,0dhjnz inputnext:mov al,$mov si,alm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品监督管理局新闻宣传中心2026年度公开招聘笔试备考题库带答案
- 药物购销员题库带答案
- 血液病学案例分析题库及答案
- 西药药剂高级药师题库及答案
- 起重作业试题题库及答案
- 辽宁省大连市2026年中级银行从业资格中级风险管理考试题库及答案
- 邮政金融笔模拟试题库及答案
- 铁路货运规章题库及答案
- 银行从业资格考试法律法规与综合能力题库及答案
- 银行招聘考试EPI题库及答案
- 客户参观公司讲解
- gis组合电器培训课件
- 内蒙古维拉斯托矿业有限公司招聘笔试题库2025
- 国际海上货运代理国际货运代理实务73课件
- (高清版)DG∕TJ 08-2068-2019 超高压喷射注浆技术标准
- 传统语文教育教材论
- 新能源汽车三电系统培训教程
- 职业卫生模拟试题含答案
- DB3203-T 1063-2024 人事考试命题工作实施规范
- 消化内科入科培训
- 《高血压危象》课件
评论
0/150
提交评论