微机原理课设_第1页
微机原理课设_第2页
微机原理课设_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计课程设计名称: 专业班级: 学生姓名: 学号:指导教师: 课程设计时间:微机应用系统课程设计计科1204班张婷婷2012160104332014.12.22-2015.1.3计算机科学与技术专业课程设计任务书学生姓名张婷婷专业班级计科1204班学号201216010433题目加法练习程序设计课题性质A.工程设计课题来源自拟课题指导教师王锋同组姓名无随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,主要内容若错误给出错误提示,并提示输入答案;按R键继续下一题,按Q键返回DOS.一切以设计内容为前提进行课程设计实验:1.设计一个采单,选项为加法和减法的练习。任务要求2.以获

2、取系统中的秒和百分秒作为两个随机数进行加减运算。3将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提示,并继续输入答案直到正确为止。4.提示是否继续下一题,按R键继续下一题,按Q键返回DOS1.16/32位微机原理、汇编语言及接口技术(第2版)-(北京电子工业出版社2003 )钱晓捷,陈涛 编著参考文献2.32位微型计算机原理与接口技术-(北京清华大学出版社2000 )仇玉章等编著指导教师签字:审查意见教研室主任签字:2015年1月10日课程设计实验的目的课程设计的目的在于更好的锻炼我们的实践能力和考验平时学习的成果。我 们是计算机专业, 离不开编写代码。 平时上课所学的知识来自

3、于课本, 上机实验 相对比较少, 所能锻炼的操作能力机会不多。 而课程设计是让我们综合平时课本 和实验的知识及经验, 自己设计和构造, 编写一个相对完整的程序。 这不仅仅是 对以前知识的巩固, 更是锻炼我们的思维, 我们的设计与编写程序的能力。 对于 我们以后将会从事的计算机类工作, 这能很好的为我们打下坚实的基础, 所谓积 少成多,每学期都做课程设计, 到毕业时我们对于编写一个应用软件或许就能较 容易驾驭了。本次微机应用系统课程设计我的题目是加法练习程序设计, 虽然只要求加法 运算,但我在该程序里添加了减法运算, 使得程序相对不会太单调。 虽然给的编 程题目可能会与别人一样, 但每个人的想法

4、不一样, 在设计时添加自己的想法或 许就能使程序更加完善了,这也是课程设计对我们的一种锻炼。二 实验设计的任务与要求 加法练习设计程序的内容是:随机给出百位数以内的加法算式 , 并提示输入 答案 , 若正确给出正确提示 , 若错误给出错误提示 , 并提示输入答案 ; 按 R 键继续 下一题,按Q键返回DOS按照内容要求,在所学知识内容的基础上设计程序, 具体的内容设计要求任务如下:1. 设计一个菜单,选项为加法和减法的练习。2. 以获取系统中的秒和百分秒作为两个随机数进行加减运算。3. 将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提 示,并继续输入答案直到正确为止。4. 提示

5、是否继续下一题,按 R键继续下一题,按Q键返回DOS 这次课程设计是在完成设计要求的基础上,添加了减法练习运算,以仔细、认真、规范的态度完成自己课程设计。三 实验设计的思想 加法练习程序设计,主要工作是产生两个两位数的随机数进行加运算,而怎 么产生随机数是该程序的难点。 在搜集了一些资料后发现很多程序用的随机数是 伪随机,是一个比较复杂算法, 而不使用算法获得随机数的方法就是获取系统的 时间。在翻阅课本后得知 movah,2ch int 21h 语句可以得到系统时间,在考虑 后认为秒和百分秒比较适合, 因为在短时间内这两个时间变化的多一些, 比较适 合用于随机数。Dh所存的数对应的是秒,DI所

6、存的数对应的是百分秒。加法直 接将两个随机数相加即可, 但减法就相对麻烦些, 因为会出现第一个随机数比第 二个随机数小得到结果为负数。为了解决这一问题,在数据段定义了两个变量, 用来存放减数和被减数。 在获取随机数时先不显示运算式, 先将随机数的值给变 量numl和变量mum2如果相减结果小于0则转回去继续取随机数,直到取得随 机数相减记过大于 0,则显示运算式继续后面的程序运行。相对较难的部分解决后则是将整个程序流程串起来, 先是显示选择加或减运 算,产生的随机数并显示相应的运算式; 再是输入结果, 对结果进行判断给出对 或错的提示, 错误时提示继续输入结果, 对则继续下一步; 最后选择是否

7、继续下 一题,R返回最初加减运算选择,Q则退出。四 实验环境4.1 运行环境( 1 )软件环境 操作系统: Windows 7(2)硬件环境 处理器 :Inter Core i5 内存: 4.00GB 硬盘空间: 500GB4.2 开发工具与编程语言( 1 )开发工具:Masm for Windows 集成实验环境 V2012(2)编程语言:汇编五 实验方案先是设计了一个菜单,用于选择进行加法运算还是减法运算,菜单显示来 自数据段的字符串。选择后变转到 jiafa 或 jianfa 程序段中,调用产生随机数 的randoml (秒)和random2 (百分秒)程序段中并显示运算式。将输入的答案

8、 通过show程序段将其转换成ASCII码显示出来,再由get程序段将输入的答案 转换成对应的数,最后转换成数的答案与计算机运算结果比较,如果相减为 0则对,提示correct ,否则输入的答案是错的,提示error并让其继续输入答案 直到正确为止。在答案正确后,提示“ Con ti nue(R) or Exit(Q)? ”是否继续下 一题,按R继续下一题,按Q则返回DOS六. 实验流程图开始显示菜单加法练习算式减法练习算式输入结果否退出七. 实验源代码DATASSEGMENT,0dh,0ah, '$' *'addp db '* 1. Addition to p

9、ractice *: ',0dh,0ah, '$'subp db '* 2. Subtraction to practice *: ',0dh,0ah, '$'sele db 'Input your chioce: ' ,'$'corr db 20h,20h, 'Correct!' ,0dh,0ah, '$'erro db 20h,20h, 'Error!' ,0dh,0ah, '$'rorq db 'Continue(R) or Ex

10、it(Q)?' ,0dh,0ah,'$'exit db 0dh,0ah, ' Press any key to quit.',0dh,0ah, '$'sum dw0num1 dw0num2 dw0DATASENDS STACKSSEGMENT STACKSENDS CODESSEGMENTASSUMCES:CODES,DS:DATAS,SS:STACKS START:MOVAX,DATAS MOVDS,AX again:movdx, offset msg movah,09h int 21hmovdx, offset addp movah,

11、09h int 21hmovdx, offset subp movah,09h int 21hmovdx, offset msgmovah,09h int 21h select:call huan movdx, offset movah,09h int 21h movah,1 int 21h cmpal,31h jz jiafa cmpal,32h call huan jz jianfa gono:movdx, offset movah,09h int 21hkey: movah,1 int 21h cmpal,72h jz select cmpal,71h jnz key call huan

12、 movdx, offset movah,09hselerorqexitint 21hmovah,4ch int 21h jiafa:call huan call random1 movsum,ax call show movdl, '+' movah,2 int 21hcall random2 add sum,ax call show jmp next jianfa:call random1 movsum,ax movnum1,ax call random2 sbb sum,ax movnum2,ax cmpsum,0 jl jianfa movax,num1 call sh

13、ow movdl, '-' movah,2 int 21h movax,num2call show jmp next next:erromovdl, '=' movah,2 int 21h call input cmpbp,sum jz done movdx, offset movah,09h int 21h jmp next done:corrmovdx, offset movah,9 int 21h jmp gono random1:movah,2ch int 21h moval,dh movah,0 ret random2:movah,2ch int 21

14、h moval,dl movah,0retshow: movax,ax aam or ax,3030h xchg ah,al movdx,ax movah,2 int 21h movdl,dh int 21h retinput: movbp,0 movcx,3 get:movah,0 int 16h cmpal,0dh jz ok cmpal, '0' jb get cmpal, '9' ja get movah,0eh int 10h and ax,0fh xchg bp,ax movbx,10mul bx add bp,ax loop get ok:cmpc

15、x,3rethua n:movdl,0dh movah,2 int 21h movdl,0ah movah,2 int 21h ret MOAH,4CH INT 21H CODESENDSENDSTART八. 实验结果霁 D:AS M M a s mb i nDWTe in p ,exe» 1. Addxt iono ppact ice *班 2. Subtract ion to pract ice « 耳 iKWiKWKXXliXXKiKXWfiMiXKIKXWriMiXKiKXWrXiCWrI ni put ynur cliioce * 1孙Im图1菜单rD:AS M Mas mb i nDVTe m p -exeu 1 回Input your chioce: 149+48=97 Correct*Continue<R> or Exit<Q?I*Input you.r cliioce: 2T14rrr图2加法练习运算騒 D:ASMMasmXbinVD/Tennp.exe口图3减法练习运算图4运算错误和退出九. 实验总结加法练习程序设计可能较于平时的一些实验相对简单些,但这次的课程设计 是由自己构思和设计的,遇到麻烦的地方也要靠自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论