《求最大公约数和大奖赛计分程序_微机原理课程设计》.doc

《求最大公约数和大奖赛计分程序_微机原理课程设计》.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告 ( 2012—2013 年度第 一 学期) 课 程:微机原理及应用 题 目:求最大公约数和大奖赛计分程序 院 系:自动化系 班 级:自动化1002班 学 号: 学生姓名: 指导教师: 设计周数: 成 绩:日期:2013年 1 月 11 日《微机原理及应用》课程设计 任 务 书 一、 目的与要求 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。 培养学生分析问题、解决问题的能力。 培养学生对微型计算机应用系统的基本设计能力。 提高学生的实践动手能力和创新能力。 二、 主要内容 求最大公约数和大奖赛计分程序。 根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。 写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。 三、 进度计划 序号 设计内容 完成时间 备注 1 选择课程设计题目,查阅相关资料 周二 2 进行软硬件设计 周三 3 上机调试 周四 4 撰写设计报告 周四 5 演示及答辩 周五 四、 设计成果要求 系统硬件设计合理,软件编程达到设计要求。 系统硬件结构图和软件流程图绘制清楚规范。 设计报告完整规范。 五、 考核方式 根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。 学生姓名:0211 李俊杰 0224 张茜 0228 周小朋 指导教师:焦嵩鸣《微机原理及应用》课程设计一、课程设计(2在键盘上输入两个数并在屏幕上显示,每个数以ENTER键结束(3)把输入的十进制数转换成二进制数,并求出它们的最大公约数(4)把二进制表示的最大公约数转换成ASCII码,并在屏幕上显示。 MOV AL,BL;最大公约数计算结束,把最大公约数保存到AL中XOR AH,AH;将AL中的一个8位无符号数扩展成16位,存放在AX中MOV CL,10DIV CL;将公约数除以10,商就是显示器十位上的值,余数就是各位的值CMP AL,0JZ NEXT3;若AL中的商等于0,则直接跳到NEXT3,不显示十位上的0MOV DL,ALADD DL,30HMOV AH,2INT 21H;若AL中的商不为0,则输出显示在屏幕上 NEXT3:AND DL,0MOV DL,AHADD DL,30HAND AH,0MOV AH,2INT 21H 大量的对程序进行实验才发觉输入两个一位的数字时候是完全正确的,而输入的两个数的最大公约数是两位时,输出结果的个位总是要不正确要不和正确值偏差点,再实验后发现输入的两个数的最大公约数是两位时,输出结果的个位永远是2,我们这才发现了问题是在哪。原来如果输入两个最大公约数是两位的数时,第一次取的余数(也就是输出数的个位)默认放在了AH里,而02H功能调用输出十位上的数时,AH被重新赋值了2,所以输出显示的也永远是2,。而当输入的两个数的最大公约数是一位时,在CMP AL,0 JZ NEXT3那里就跳转到了输出个位的指令,从而输出正确。最后把AH中的个位先赋给了一个空闲寄存器,等输出个位时再掉用那个空闲寄存器而不是AH就轻松解决了问题,可找过程的过程确实很艰辛,但也弄懂了很多很多其他的东西。 最后就是对程序进行解释说明了,写好之后才发觉会编程和能说清楚是两码事,但本来还是有点模糊的程序写完注释之后就感觉特别的清晰明朗,这不得不说是意外的收获。 (2)大奖赛计分程序 源程序建立以后要对其进行汇编,汇编程序会指出源程序中的错误,这些错误要经过调试阶段才能纠正,从而得到正确的结果。常用的调试程序为DEBUG程序,它通过单步,设置断点等方式提供了非常有效的调试手段。现将本程序设计中遇到的错误和修正总结如下: 1.在初次编译时,汇编程序提示有大量错误,仔细检查后发现比较指令格式运用出错,不能对两个存储器数直接进行比较。 原程序 CMP AA,BB 修改后 MOV AL,AAMOV BL,BBMOV AL,BL 2.将源程序再次汇编后得到没有语法错误OBJ文件,然后用LINK程序把OBJ文件转换成可执行的EXE文件,在DOS环境下可直接运行该文件,但运行后系统提示除数溢出,我们在程序中找不到错误,只好用DEBUG调试。只需EDIT环境,输入TDEBUG加文件名之后回车,就可以进入DEBUG环境进行程序调试。 我们根据系统提示用F8单步进行调试,观察每一步结果,当执行到数值转换哪里时,我们发现结果出现了问题,两位数转换之后是正确的,但一位数却出现了错误。于是对程序进行了修改,但还是出现了错

文档评论(0)

gaitao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档