汇编语言课程设计65821new

上传人:xins****2008 文档编号:110889286 上传时间:2019-10-31 格式:DOC 页数:9 大小:178.50KB
返回 下载 相关 举报
汇编语言课程设计65821new_第1页
第1页 / 共9页
汇编语言课程设计65821new_第2页
第2页 / 共9页
汇编语言课程设计65821new_第3页
第3页 / 共9页
汇编语言课程设计65821new_第4页
第4页 / 共9页
汇编语言课程设计65821new_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《汇编语言课程设计65821new》由会员分享,可在线阅读,更多相关《汇编语言课程设计65821new(9页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告目 录第一章 前言31.1 摘要31.2基本功能要求3第二章 程序设计42.1题目基本内容42.2系统流程框图52.3课程设计的具体内容说明62.4课程设计中关键内容的分析设计说明62.5运行截图6第三章 课程设计小结7参考文献8附录:9源程序代码9第一章 前言1.1 摘要 本次课程设计,是使用汇编作为开发语言实现功能要求。总所周知,汇编是一个低级语言,对硬件有很大的依赖性,在使用上也不及高级语言方便,但其在执行效率上比高级语言有很大的优势。本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的要求。另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个教大问

2、题分解成若干个小问题,即子程序是一个良好的编程习惯。掌握汇编指令,学习的理论知识应用于解决实际的问题。1.2基本功能要求显示一个数字的方阵,提示输入一个3-5的数字,根据输入的数字显示方阵,如输入4,输出12341213145111615610987第二章 程序设计2.1题目基本内容设计题目:成绩评定具体要求: (1)输出提示输入,接受在一定范围内的指定数字,3到9之间,否则重新输入,如果是ESC键,则推出程序(2)对接受的数字进行,数字矩阵的显示2.2系统流程框图主程序:SHOW循环显示子程序: CRT子程序调整AL值分别得到二位十进制个位,十位值十位是否为 0 0N输出个位值子程序返回取得

3、BP中的值向右输出n数每输出一个自加向下输出n-1个数每输出一个自加向左输出n-1个数每输出一个自加向右输出n-2每输出一个自加子程序返回 此位填空格输出Y输出其值 2.3课程设计的具体内容说明根据课题的要求,主要完成一下几方面的设计:1显示提示输入,提示输入 ,并保证输入大于3小于9,否则重新输入2编写子程序,用算法实现每次形如矩形的输出,如 123412511610987直至输出完毕3在输出时,如果是两位十进制数,使用设计子程序分别输出个位,十位值,若是一位十进制数,十位填充空格,输出。2.4课程设计中关键内容的分析设计说明1、要求输入介于3到9,如果输入不符合要求,不能显示其内容,要求重

4、新输入,直至符合要求方显示。2、算法实现并不是件简单的事情。高级语言可以设置二维数组实现,不必考虑其位数,输出也仅是一个元素值。而用汇编则遇到定位鼠标,才是显示,根据程序要求,想要达到程序要求,必须对鼠标位置做精确定位。汇编一次只能输出一个字符,对于二位十进制数据时,必须作出处理分别输出。如果对于一位二进制数不做处理,输出时的样子非常难看。处理方案是:当输出一位十进制数时,在十位位置填充空格,显示效果良好。3、在汇编语言中,输出位置是在光标的位置显示,定位鼠标位置,在显示时没有选择DOS和BIOS中断,而是选择了教为简洁的STOSB的“显式操作数”形式输出。 2.4程序运行截图从键盘输入3-9

5、的数字,截图如下:例如输入3,运行结果如以下截图:例如键入4,运行结果如以下截图:例如键入5,运行结果如以下截图:第三章 课程设计感悟课程设计是将课本上所学的理论知识运用与解决实际的问题,对松散的理论知识的一个集合式运用,也是综合知识,综合运用能力的一个过程。对知识的掌握和灵活运用是一个很好的考察。由于汇编是大二时所学,那么长时间没有运用,忘了好大一部分。当要做课程设计时,又把整本书又复习了一遍,而且我们那本课本是入门级教材。对诸如DOS和BIOS中断的介绍也只是一个简单的叙述,当真正要使用某一功能时,我们的课本就捉襟见肘了。因此在课程设计的过程中,图书馆是不得不常去的一个地方了。丰富的网络资

6、源也很不错,但发现在查看网上的资料的时候最大的问题是如果获得自己想要的东西,搜索时选择准确的关键字是至关重要,准确的关键字能让你很快的找到所需的资料,而一个不好的关键字则让你的工作事倍功半。找过自己所需的资料时,筛选自己所需的也是一个很重要的过程。你搜索的到的资料不一定就适合你,因为汇编的平台依赖性,而且整个汇编的模式选择也不同,等等。本次课程设计,掌握了使用“轻松汇编”这个汇编编辑器,和在其提供的调试环境下做调试。做调试的过程中按F7(跟踪调试)F8(单步调试)是一个以前听说过学习c+和vc的人的F9,F10键是光秃秃的,现在真的明白了。调试是一个必要必须的过程,这样才知道你的程序出现问题时

7、的问题所在。在课程设计的过程中,遇到了好多问题,走了不少的弯路,通过努力,最终解决了不少问题。做课程设计的过程是为自己修一条路,先前是凸凹不平的道路,等到你做足了功夫,一点点的走过。自己的这条路才宽了,才平了。由于3到5之间的算法原理和3到9之间的算法是一样的,所以课程设计做到了3到9。综合来说,本次课程设计让我对学习汇编有了一个新的认识。附录:源程序代码 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

8、,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

9、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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号