




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课课程程设设计计说说明明书书 课程名称 微机原理课程设计 题目 查找字符串中的指定字符 院 系 数学与大数据学院 专业班级 应用物理 学 号 学生姓名 指导教师 2017 年 6 月 16 日 安徽理工大学课程设计 论文 任务书安徽理工大学课程设计 论文 任务书 数学与大数据 院系 信计 教研室 学 号学生姓名专业 班级 应用物理 设计题 目 查找字符串中的指定字符 设 计 技 术 参 数 1 程序算法框图的设计 2 程序代码的编写 3 程序调试 4 课程设计说明书的书写 设 计 要 求 1 设计报告要求文字通顺 语言流畅 无错别字 统一用 A4 纸打印 不少于 12 页 2 设计报告中图表 附注 参考文献 公式一律采用阿拉伯 数字连续 或分章 编号 3 图序及图名置于图的下方居中 表序及表名置于表的上方 居中 工 作 量 查阅相关材料 完成设计 完成设计报告 工 作 计 划 1 综合论证 确定设计方案 2 查阅资料 完成设计 3 完成设计报告 参 考 资 料 1 李伯成 微型计算机原理及应用 M 西安电子科技大学出版社 1998 2 陈忠强 现代微机原理与接口技术 M 冶金工业出版社 2006 3 郭兰英 微机原理与接口技术 M 清华大学出版社 2006 4 周明德 微型计算机系统原理及应用 M 北京 清华大学出版社 5 楼顺天 周社佳 微机原理与接口技术 M 北京 科学出版社 2006 指导教师签字 教研室主任签字 年 月 日 安徽理工大学课程设计 论文 成绩评定表安徽理工大学课程设计 论文 成绩评定表 学生姓名 学号 专业班级 应用物理 课程设计题目 查找字符串中的指定字符 指导教师评语 成绩 指导教师 年 月 日 I 目录目录 一 背景及研究意 义 1 二 设计思 路 2 三 程序设 计 2 3 1 程序中用到的 dos 调 用 2 3 2 程序中主要汇编指 令 3 3 3 程序设计框 图 4 四 程序主要代码分 析 6 4 1 数据段代 码 6 4 2 显示提示字符代码 段 6 I 4 3 字符段输入代码 段 6 4 4 字符比较代码 段 7 4 5 结果输出代码 段 8 五 程序调试与结果分 析 9 5 1 运行结 果 9 5 2 问题分 析 10 6 总结与心得体 会 11 参考文 献 12 附 录 1 3 0 1 背景及目的研究意义背景及目的研究意义 汇编语言是面向机器的程序设计语言 在计算机发展的初期 人们是用机 器指令码 二进制编码 来编写程序的 这就称为机器语言 但是机器语言无 明显的特征 不好理解和记忆 也不便于学习 在编制程序时极易出错 所以 人们就用助记符代替操作码 用符号来代替地址 这就是汇编语言阶段 在汇编语言中 用助记符代替操作码 用地址符号代替操作码 这样的符 号代替机器语言的二进制码 就把机器语言变成汇编语言 于是汇编语言又被 叫做符号语言 使用汇编语言编写的程序 机器不能直接识别 要通过一种程 序将汇编语言翻译成机器语言 这种其翻译作用的程序叫汇编程序 汇编程序 是系统软件中语言处理系统软件 高级汇编程序如 MASM TASM 等为我们在 编写汇编程序提供了很多类似高级语言的特征 比如结构化 抽象等 在这种 环境下编写的程序 有很大一部分是伪指令 已经跟高级语言很像了 即使全 部用汇编语言来编写 windows 程序也是可行的 汇编语言作为面向机器的语言 通过对该语言的学习 能够加深对计算机 内部器件原理以及工作方式的理解 学习汇编语言时也需要懂得每句代码运行 后 CPU 的寄存器和储存器的内容变更 理解芯片如何运行每个指令的 从而 加深对计算机硬件的理解 而本次课程设计的课题 查找字符串中指定字符将运用到汇编语言中的基 本指令以及分支和循环语句 本次课程设计不仅可以更加熟练的掌握汇编的语 句和指令 还可以把课堂上学习到的理论知识和实践结合起来 提高个人的动 手能力和独立思考的能力 通过设计过程 要熟悉并且掌握微机系统的软件设计方法 设计步骤 以 及学会在程序编写过成中发现问题 分析问题与解决问题的能力 还要加深对 汇编语言的理解 在以后的应用中更加的熟练 1 2 设计思路设计思路 首先按照课程设计要求在字符和字符串输入前要显示一串提示符 然后输 入一个字符串 显示在窗口上 再次提示输入一个字符 比较字符串中字符与 这个字符是否相同 并记相同的个数 其中代码核心部分就是比较与输出 这 部分代码的设计思路如下 1 首先利用循环程序输入一个字符串 判断是否有回车输入 有则跳出字符 串的输入程序 并且保存到数据段中 2 然后输入字符 然后保存到数据段中 3 利用循环程序逐个比较 如相同 则计数加 1 直到比较完 记录相同字 符的个数 并换行输出 图 2 1 设计思路 输入字符串 存入数据段 输入字符 存入数据段 取数据比较 输出结果 循环输入 相同 则 计数器 1 2 三 程序设计三 程序设计 3 1 程序中用到的程序中用到的 dos 调用调用 3 1 1 键盘输入并显示 键盘输入并显示 1 号功能调用 号功能调用 格式 MOV AH 01H INT 21H 功能 按下任何键 将其对应字符的 ASCII 码送入 AL 中 并在屏幕上显示该 字符 如果按下的是 Ctrl Break 组合键 则终止程序执行 1 号功能调用无须 入口参数 出口参数在 AL 中 3 1 2 屏幕显示 屏幕显示 格式 MOV DX 字符串的偏移地址 MOV AH 09H INT 21H 功能 在屏幕上显示字符串 在使用 9 号功能调用时 应当注意以下问题 待显示的字符串必须先放在内存一数据区 DS 段 中 且以 符 号作为结束标志 应当将字符串首地址的段基址和偏移地址分别存入 DS 和 DX 寄存器中 3 1 3 字符串输入功能调用 字符串输入功能调用 0AH 号功能调用 号功能调用 格式 MOV DX 已定义缓冲区的偏移地址 MOV AH 0AH INT 21H 功能 从键盘接收字符 并存放到内存缓冲区 在使用 0AH 号功能调用时 应当注意以下问题 执行前先定义一个输入缓冲区 缓冲区内第一个字节定义为允许最多输 入的字符个数 字符个数应包括回车符 0DH 在内 不能为 0 值 第二个字 节保留 在执 行程序完毕后存入输入的实际字符个数 从第三个字节开始存入 从键盘上接收字符的 ASCII 码 应当将缓冲区首地址的段基址和偏移地址分别存入 DS 和 DX 寄存器中 3 1 4 返回 返回 DOS 操作系统 操作系统 4CH 号功能调用 号功能调用 格式 MOV AH 4CH INT 21H 3 功能 终止当前程序的运行 并把控制权交给调用的程序 即返回 DOS 系统 屏幕出现 DOS 提示符 如 C 等待 DOS 命令 3 2 汇编指令 汇编指令 3 2 1 CMP 比较指令比较指令 比较指令完成两个操作数相减 使结果反映在标志位上 但两操作数不变 格式 CMP AX BX 具体的说 比较指令可使累加器与立即数 任一通用寄存器或任一内存操 作数相比较 也可以使任一通用寄存器与立即数 其他寄存器或任一内存操作 数相比较 也可以使内存操作数与立即数或任一寄存器相比较 在比较指令之后 根据 ZF 标志即可判断两者是否相等 若两者相等 相 减以后结果为 0 则 ZF 标志为 1 否则为 0 3 2 2 根据 根据 ZF 标志位形成的的条件转移指令标志位形成的的条件转移指令 格式 JNZ Label 这是当 ZF 标志等于 0 时 能转移到目标地址 Label 的条件转移指令 3 2 3 LEA 加载有效地址加载有效地址 计算源操作数的有效地址 即段内偏移量 并存储至目标操作数 源操作 数是一个内存单元 可用各种寻址方式 目标操作数是一个通用寄存器 3 2 4 XOR 执行按位逻辑异或执行按位逻辑异或 格式 XOR DOPD SOPD 这条指令对两个指定的操作数进行 异或 运算 当进行 异或 的两位 不相同时 即一个为 1 一个为 0 异或 的结果为 1 否则为 0 异或运算 的结果送回一个操作数 在本课题中用此条命令对 AX 寄存器清零操作 4 3 3 程序设计框图程序设计框图 3 3 1 字符串输入框图字符串输入框图 开始 显示提示符 1 输入字符串 是否输 入回车 输入字符 数小于 9 inc di inc si inc cx 在字符串末端加入 字符 结束 N Y N Y 5 图 3 1 字符串输入框图 3 3 2 比较与输出框图比较与输出框图 开始 输出提示符 2 并输入比较字符 与字符串中 字符相等 INC DI BL 1 输入提示符 3 输出形同字符个数 结束 Y N 6 图 3 2 比较与输出框图 四 主要代码分析四 主要代码分析 4 1 数据段代码数据段代码 data segment tip1 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 4 2 显示提示符代码段显示提示符代码段 start mov ax data mov ds ax mov cx 0 lea dx tip1 mov ah 09h 显示提示符 1 int 21h 将伪地址段装入段寄存器中 并且输出第一条提示语句 4 3 字符串输入段代码字符串输入段代码 input cmp cx 09h jz next mov ah 01h 输入字符串 int 21h mov di al 7 mov si al inc di inc si inc cx cmp al 0dh jnz input next mov al mov si al 键盘输入字符 并且在每次输入之后判断是否为回车 若是 结束输入并 插入结尾标志 若不是回车 则循环继续输入 并在窗口显示输入的字符 串 4 4 字符比较代码段字符比较代码段 xor ax ax 将 ax 寄存器清零 lea dx tip2 显示提示符 2 mov ah 09h int 21h mov ah 01h 输入比较字符 int 21h lea si count mov si al mov bl 30h lea di str2 cmp2 cmp al di jnz cmp1 inc bl 8 cmp1 inc di loop cmp2 mov dl 0ah 首先 需要对 AX 寄存器进行清零操作 因为 AX 寄存器若不为 0 对接 下来的两个字符的比较会产生较大影响 之后输出第二条提示语句 提示输入 要进行比较的字符 用 bl 寄存器来计字符相同的个数 在 cmp2 程序段中比较 若不同 直接调到 cmp1 中取下一个字符比较 若相同则 bl 1 在进入 cmp1 中 取下一个字符进行比较 4 5 结果输出程序段结果输出程序段 lea dx tip3 mov ah 09h int 21h mov ah 02h int 21h mov dl bl int 21h 9 五 程序调试与结果分析五 程序调试与结果分析 5 1 运行结果运行结果 程序运行开始界面 图 5 1 输出结果 1 输入一个字符串后的界面 10 图 5 2 输出结果 2 输入一个字符后立即出结果界面 图 5 3 输出结果 11 5 2 问题分析问题分析 问题 1 程序运行时 当执行查找功能时出现乱码 问题 2 当输入 10 个及以上相同的字符时 再查找该字符 程序会出现错 误 通过对这些问题的分析 查找资料以及讨论后的一些方案如下 问题 1 原因是系统不能确定是否结束输出 所以会出现乱码 设计程序 时设置按回车结束输出 或者在输入字符后加 符号 问题 2 原因是 9 的 ASCII 码后面一位不是 10 而是 所以结果为 10 时会输出 0 而不是 10 在输入代码段加入跳转代码 当输入字符数到达 10 个 时自动结束输入 6 总结与心得体会总结与心得体会 通过对这程序的制作 使我对汇编语言的基本知识的使用更加熟练 同时 也增加了我对汇编语言的一些认识 在作业完成过程中通过和同学的交流 也 增加了合作的技巧 通过查阅以下资料也学到了一些课本上没有的东西 拓宽 了自己的知识面 增加了学好汇编语言的信心 当然 在程序的编写与设计的过程中也发现了一些问题 比如说出现乱码 的问题 当时不太清楚这段乱码出现的原因 但是去网上搜索这问题 发现也 有些人和我一样的粗心大意 并且有人给出了很好的方法解决了这个问题 还 有问题 2 是问了一个同学 他跟我解释了这个输出 ASCII 问题 但是我用了一 个比较笨的方法解决了这个问题 这让我觉得团队合作的重要性以及搜索知识 的能力的锻炼 通过这次课程设计使我懂得了理论与实际相结合是很重要的 只有理论知 识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结 论 才能真正提高自己的实际动手能力和独立思考的能力 在设计的过程中遇 到问题 可以说得是困难重重 这毕竟第一次做的 难免会遇到过各种各样的 问题 同时在设计的过程中发现了自己的不足之处 对以前所学过的知识理解 得不够深刻 掌握得不够牢固 这次课程设计终于顺利完成了 在设计中遇到 12 了很多编程问题 最后在自己的思考以及和与同学的讨论中 终于迎刃而解 参考文献参考文献 1 李伯成 微型计算机原理及应用 M 西安电子科技大学出版社 1998 2 陈忠强 现代微机原理与接口技术 M 冶金工业出版社 2006 3 郭兰英 微机原理与接口技术 M 清华大学出版社 2006 4 周明德 微型计算机系统原理及应用 M 北京 清华大学出版社 5 楼顺天 周社佳 微机原理与接口技术 M 北京 科学出版社 2006 6 胡汉才 微机原理与接口技术课程设计 M 北京 清华大学出版 1996 7 付家才 微型计算机及其接口技术学习指导与题典 M 北京 化学工业出 版社 2004 8 潘新民 微型计算机控制技术 M 北京 人民邮电出版社 1999 9 9 余锡存 曹国华 汇编语言 微机原理及接口技术 M 陕西 西安电子科技 大学出版社 2000 10 雷丽文 微机原理与接口技术 M 北京 电子工业出版社 1997 11 李银华 电子线路技术指导 M 北京 北京航空航天大学出版社 2005 13 附录 附录 data segment tip1 db please input a string 0dh 0ah tip2 db please input a word 0dh 0ah tip3 db 0dh 0ah The result is s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传统工地管理制度
- 广州中医药大学《服务营销与管理》2023-2024学年第二学期期末试卷
- 低温鱼池管理制度
- 住宅楼道管理制度
- 德阳城市轨道交通职业学院《换热器原理与设计》2023-2024学年第二学期期末试卷
- 三江学院《学术英语(英)(1)》2023-2024学年第二学期期末试卷
- 武汉纺织大学《艺术管理》2023-2024学年第二学期期末试卷
- 供应结算管理制度
- 供暖计量管理制度
- 供水督察管理制度
- 高中美术高中美术鉴赏《抒情与写意-文人画》课件
- 新苏教版小学科学四年级下册期末试卷及答案
- 2024年大学毛概期末全真模拟试卷及答案(共六套)
- 地弹簧门安装合同(2篇)
- IATF16949-2016体系管理质量手册(压铸铝合金)
- 如何正确呼叫120
- 化疗药物引起肾毒性护理
- 粉末静电喷涂工艺
- 古董数字化展示
- (部编版)统编版小学语文教材目录(一至六年级上册下册齐全)
- 陕西延长石油集团招聘笔试题库2024
评论
0/150
提交评论