数字方阵--汇编语言课程设计报告(共11页)

上传人:仙*** 文档编号:131769127 上传时间:2022-08-07 格式:DOC 页数:11 大小:152KB
返回 下载 相关 举报
数字方阵--汇编语言课程设计报告(共11页)_第1页
第1页 / 共11页
数字方阵--汇编语言课程设计报告(共11页)_第2页
第2页 / 共11页
数字方阵--汇编语言课程设计报告(共11页)_第3页
第3页 / 共11页
点击查看更多>>
资源描述
课程设计报告课程名称: 汇编语言程序设计 课题名称: 数字方阵程序 姓 名: 朱海清() 班 级: 计科0701 指导老师: 卢清平 报告日期: 2010年 7月 目 录第一章 前言1.1 摘要 本次课程设计,是使用汇编作为开发语言实现功能要求。总所周知,汇编是一个低级语言,对硬件有很大的依赖性,在使用上也不及高级语言方便,但其在执行效率上比高级语言有很大的优势。本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的要求。另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个教大问题分解成若干个小问题,即子程序是一个良好的编程习惯。掌握汇编指令,学习的理论知识应用于解决实际的问题。1.2基本功能要求显示一个数字的方阵,提示输入一个3-5的数字,根据输入的数字显示方阵,如输入4,输出12341213145111615610987第二章 程序设计2.1题目基本内容设计题目:成绩评定具体要求: (1)输出提示输入,接受在一定范围内的指定数字,3到9之间,否则重新输入,如果是ESC键,则推出程序(2)对接受的数字进行,数字矩阵的显示2.2系统流程框图主程序:SHOW循环显示子程序: CRT子程序调整AL值分别得到二位十进制个位,十位值十位是否为 0 0N输出个位值子程序返回取得BP中的值向右输出n数每输出一个自加向下输出n-1个数每输出一个自加向左输出n-1个数每输出一个自加向右输出n-2每输出一个自加子程序返回 此位填空格输出Y输出其值 2.3课程设计的具体内容说明根据课题的要求,主要完成一下几方面的设计:1显示提示输入,提示输入 ,并保证输入大于3小于9,否则重新输入2编写子程序,用算法实现每次形如矩形的输出,如 123412511610987直至输出完毕3在输出时,如果是两位十进制数,使用设计子程序分别输出个位,十位值,若是一位十进制数,十位填充空格,输出。2.4课程设计中关键内容的分析设计说明1、要求输入介于3到9,如果输入不符合要求,不能显示其内容,要求重新输入,直至符合要求方显示。2、算法实现并不是件简单的事情。高级语言可以设置二维数组实现,不必考虑其位数,输出也仅是一个元素值。而用汇编则遇到定位鼠标,才是显示,根据程序要求,想要达到程序要求,必须对鼠标位置做精确定位。汇编一次只能输出一个字符,对于二位十进制数据时,必须作出处理分别输出。如果对于一位二进制数不做处理,输出时的样子非常难看。处理方案是:当输出一位十进制数时,在十位位置填充空格,显示效果良好。3、在汇编语言中,输出位置是在光标的位置显示,定位鼠标位置,在显示时没有选择DOS和BIOS中断,而是选择了教为简洁的STOSB的“显式操作数”形式输出。 2.4程序运行截图从键盘输入3-9的数字,截图如下:例如输入3,运行结果如以下截图:例如键入4,运行结果如以下截图:例如键入5,运行结果如以下截图:第三章 课程设计感悟课程设计是将课本上所学的理论知识运用与解决实际的问题,对松散的理论知识的一个集合式运用,也是综合知识,综合运用能力的一个过程。对知识的掌握和灵活运用是一个很好的考察。由于汇编是大二时所学,那么长时间没有运用,忘了好大一部分。当要做课程设计时,又把整本书又复习了一遍,而且我们那本课本是入门级教材。对诸如DOS和BIOS中断的介绍也只是一个简单的叙述,当真正要使用某一功能时,我们的课本就捉襟见肘了。因此在课程设计的过程中,图书馆是不得不常去的一个地方了。丰富的网络资源也很不错,但发现在查看网上的资料的时候最大的问题是如果获得自己想要的东西,搜索时选择准确的关键字是至关重要,准确的关键字能让你很快的找到所需的资料,而一个不好的关键字则让你的工作事倍功半。找过自己所需的资料时,筛选自己所需的也是一个很重要的过程。你搜索的到的资料不一定就适合你,因为汇编的平台依赖性,而且整个汇编的模式选择也不同,等等。本次课程设计,掌握了使用“轻松汇编”这个汇编编辑器,和在其提供的调试环境下做调试。做调试的过程中按F7(跟踪调试)F8(单步调试)是一个以前听说过学习c+和vc的人的F9,F10键是光秃秃的,现在真的明白了。调试是一个必要必须的过程,这样才知道你的程序出现问题时的问题所在。在课程设计的过程中,遇到了好多问题,走了不少的弯路,通过努力,最终解决了不少问题。做课程设计的过程是为自己修一条路,先前是凸凹不平的道路,等到你做足了功夫,一点点的走过。自己的这条路才宽了,才平了。由于3到5之间的算法原理和3到9之间的算法是一样的,所以课程设计做到了3到9。综合来说,本次课程设计让我对学习汇编有了一个新的认识。参考文献1 钱晓捷新版汇编语言程序设计北京:电子工业出版社,2008 2 杨季文80x86汇编语言程序设计教程北京:清华大学出版社, 20043 李珍香等汇编语言课程设计案例精编北京:中国水利水电出版社,20054 洪志全罗省贤汇编语言程序设计教程北京:电子工业出版社,20045 楼顺天 周佳社. 微机原理与接口技术.北京:科学出版社,2006附录:源程序代码 CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H START: PUSH CS POP DS MOV AX,3 INT 10H ;BIOS中断,置文本显示模式 MOV AX,0B800H MOV ES,AX ;定位显存 MOV DX,OFFSET MSG MOV AH,9 INT 21H ;提示 T0: MOV AH,0 INT 16H ;接收数据 CMP AL,1BH ;Esc键结束程序 esc(ascii=1Bh) JZ QUIT CMP AL,3 ;数据校验,保证输入3al9 JB T0 CMP AL,9 JA T0 MOV AH,0EH ;在Teletype模式下显示字符 INT 10H ;显示有效数 SUB AL,30H ;得到十进制数字 PUSH AX MUL AL ;al*al MOV SI,AX ;保存矩阵最大数到si中 POP AX CBW ;chang byte to word MOV BP,1 ;第一个元素值 MOV DI,3*80*2 NEXT: MOV CNT1,AX ;输入数据保存到cnt1 DEC AX ;n-1 MOV CNT2,AX MOV CNT3,AX DEC AX ;(n-1)-1 MOV CNT4,AX ADD DI,3*2 CALL SHOW ;输出矩阵 MOV AX,CNT1 SUB AX,2 SUB DI,3*2 CMP BP,SI JBE NEXT ;bpsi,则继续执行 MOV AH,0 INT 16H ;等待 JNZ START QUIT: MOV AX,4C00H INT 21H SHOW: ;显示方阵 MOV CX,CNT1 ;right 向右赋值 M1: CALL CRT INC BP ;下一个元素数值 LOOP M1 MOV CX,CNT2 ;down 向下赋值 JCXZ P2 ;cx=0,则转p2处 M2: ADD DI,(80-3)*2 CALL CRT INC BP LOOP M2 MOV CX,CNT3 ;left 向左赋值 JCXZ P2 M3: SUB DI,6*2 ;下一个元素位置 CALL CRT INC BP LOOP M3 MOV CX,CNT4 ;up 向上赋值 JCXZ P2 M4: SUB DI,(80+3)*2 CALL CRT INC BP LOOP M4 P2: RET CRT: MOV AX,BP AAM ;调整指令 OR AX,3030H XCHG AH,AL ;交换ah和al CMP AL,0 JNZ P1 MOV AL,20H P1: STOSB ;显示十位 INC DI MOV AL,AH STOSB ;显示个位 INC DI MOV AL,20H STOSB ;显示空格 INC DI RET MSG DB input(3-9),Esc to quit: $ CNT1 DW ? CNT2 DW ? CNT3 DW ? CNT4 DW ? CODE ENDS END START使用说明: 本程序在“轻松汇编”中编辑调试通过。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!