收藏 分享(赏)

汇编课程设计.doc

上传人:cjc2202537 文档编号:5211753 上传时间:2019-02-12 格式:DOC 页数:15 大小:259.50KB
下载 相关 举报
汇编课程设计.doc_第1页
第1页 / 共15页
汇编课程设计.doc_第2页
第2页 / 共15页
汇编课程设计.doc_第3页
第3页 / 共15页
汇编课程设计.doc_第4页
第4页 / 共15页
汇编课程设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、课 程 设 计课程名称 汇编语言程序设计 题 目显示数字对称等腰三角形专 业 计算机网络 班 级 姓 名 成 绩 指导教师 2009 年 6 月 25 日课程设计任务书设计题目:显示数字对称等腰三角形12 1 23 2 1 2 34 3 2 1 2 3 45 4 3 2 1 2 3 4 56 5 4 3 2 1 2 3 4 5 67 6 5 4 3 2 1 2 3 4 5 6 78 7 6 5 4 3 2 1 2 3 4 5 6 7 8设计目的:1. 巩固和加深课堂所学知识;2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;3. 通过对汇编语言程序代码的阅读

2、、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。设计任务:(在规定的时间内完成下列任务)功能与要求:1. 基本显示数字对称等腰三角形前 8 行。2. 按奇数次(q 或 Q)键该三角形显示十五行 (10 要显示 0,11 要显示 1,15 要显示 5)按偶数次(q 或 Q)恢复原来三角形显示 3. 按奇数次(a-f 或 A-F)键该三角形边框的数字换成对应的字母(有大小写)按偶数次(a-f 或 A-F)键恢复原来三角形显示4. 按 Esc 键退出程序。时间安排:6 月 22 日 布置题目,确定任务、查找相关资料6 月 23 日6 月 25 日 功能分析,模块设计,编写程序

3、,调试程序6 月 26 日 答辩后撰写设计报告。具体要求:设计报告撰写格式要求1、 题目: (按提供的设计报告统一格式撰写) ,具体内容如下:2、设计目的:2、设计内容:写出简要的程序功能描述、程序运行条件-所需工具软件、输入/输出描述等。3、程序结构: 主要的段定义说明; 用到的子程序(宏)的功能说明、调用关系说明、参数传送方式说明等; 主要算法描述等(各模块功能实现及典型指令的应用) 。4、设计步骤5、程序流程图、源程序6、实验结果(输出)7、其他值得说明的内容(1)程序结构设计特点;(2)设计、调试程序心得、体会或不足。附录:源程序代码(必须有简单注释) 参考文献指 导 教 师 签 名:

4、 09 年 6 月 20 日教研室主任(或责任教师)签名: 09 年 6 月 20 日设计报告:一. 设计题目:显示数字对称等腰三角形12 1 23 2 1 2 34 3 2 1 2 3 45 4 3 2 1 2 3 4 56 5 4 3 2 1 2 3 4 5 67 6 5 4 3 2 1 2 3 4 5 6 78 7 6 5 4 3 2 1 2 3 4 5 6 7 8二.设计目的:1. 巩固和加深课堂所学知识;2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;3. 通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践

5、编程能力。三设计内容和程序结构:3.1.功能描述:1. 基本显示数字对称等腰三角形前 8 行。2. 按奇数次(q 或 Q)键该三角形显示十五行 (10 要显示 0,11 要显示 1,15 要显示 5)按偶数次(q 或 Q)恢复原来三角形显示 3. 按奇数次(a-f 或 A-F)键该三角形边框的数字换成对应的字母(有大小写)按偶数次(a-f 或 A-F)键恢复原来三角形显示4. 按 Esc 键退出程序。3.2.运行环境:本程序可以在 8086 或更高处理器以上平台正常运行。3.3.输入输出:见第五部分截图3.4 程序结构:该程序的开始定义了 MAIN 函数,该函数的主要实现判断输入的参数,输出等

6、腰三角性。接着定义了 PrinLine 函数,该函数的功能是实现程序输出一行数的子程序,然后在程序中定义了个 PrinIS 函数,该函数的功能是实现输出整个 3 角,最后程序中还用到了一个 Clrscr 模块,即清屏,总得来说,该程序的主要实现思想方法来源于主程序调用其他一系列的子程序函数,这样做不仅是为了减少程序的代码量,也是编写程序的优势,独立的函数功能调用有利于程序的运行,减少错误出现的概率。3.5 程序主要代码:(见附录部分)四.设计步骤:1. 分析题目,查阅相关参考资料,对设计项目的功能初步了解。 (第一天)2. 完成程序的模块化设计(第二天) 。3. 对各个模块进行编程,并将其联系

7、到一起,整合程序并调试(第三、四天) 。4. 答辩并书写实验报告书(第五天) 。五.程序流程图及程序运行结果演示:图 1显示等腰三角形a-f/A-Fq/Qa-f/A-FQ/q开始初始化数据,显示原始等腰三角形按键次数偶数输入按键按键次数偶数变为边是 15行的等腰三角形变为边是 8 行的原始等腰三角形原始等腰三角形原始等腰三角形的边框替换成按下的字母否 是是 否结束按键Esc图 2程序流程图图 3按其数次 Q(大小写均可)显示 15 行图 4按偶数次 Q(大小写均可)显示 8 行图 5从 A 到 F 中任按一键三角形边框变成字母图 6按偶数次字母三角形边框恢复原来的显示七.心得体会:为时一周的课

8、程设计让我增长了很多学习汇编语言的经验。首先是对汇编语言性质的认识,汇编语言是低级语言,是与各种寄存器和堆栈联系紧密的机器底层语言。之前在课堂上接触到的程序没有针对性,仅仅靠考试和平时的习题远远达不到编程训练的要求,经过这次课程设计之后我才真正对“机器的思维方式”有了一定的了解,为编写程序增加了宝贵的经验。其次是对汇编语言学习信心的增强。在学习汇编语言之前我们学过 C 语言、C+ ,接触汇编之后感觉这是门复杂的课程,较之高级语言,它代码量大,难懂。经过这次课程设计之后我了解到只要认真投入地去思考机器是如何进行逻辑思考的并且熟悉指令,汇编语言的趣味性比高级语言更强。虽然今后的就业方向不一定与汇编

9、息息相关,但作为一个游戏爱好者,学习汇编可以作为兴趣爱好。例如我曾经用过的 6052 汇编指令查看器,专门针对任天堂 8 位 FC 红白游戏机rom 进行修改的工具,相信在经过课程设计之后,我能更得心应手的运用。最后,感谢同学们在编程时候提供给我资料、给于无私的帮助,感谢指导老师的耐心讲解和指导。八.附录部分8.1 参考文献:1.沈美明.温冬婵.80X86 汇编语言程序设计. 北京:清华大学出版社,2001.2.钱晓捷.汇编语言程序设计.第二版.北京:电子工业出本社,2005.3.朱玉龙,任文岚,朱彤. 汇编语言程序设计.北京:清华大学出版社,2003.8.2 程序主要代码:stack 100

10、0h datamsg DB 0Dh,0Ah,0Dh,0Ah,please input Q/q to choose 8 or 15 lines,0Dh,0Ah, a/A-f/F to set the frame,0Dh,0Ah, ESC to exit .,0Dh,0Ah,$ls DB 8 ;输入 8 或 15 控制等腰三角行数char DB 0 ;以字符 a/A-f/F 控制三角边框数字/字母codeMAIN PROC FAR ;主程序入口点mov ax,datamov ds,axxh:CALL CS ;清屏CALL PrinIS ;显示三角图形mov dx, offset msgmov ah

11、, 09hint 21hmov ah,1int 21h ;输入字符到 al 中mov ah,0cmp al,27 ;比较,Escjz l5cmp al,0jb l4 ;比较,小于则跳转cmp al,58jb l1cmp al,Ajb l4cmp al,Gjb l3cmp al,Qjz l2cmp al,ajb l4cmp al,gjb l3cmp al,qjz l2jmp l4 ;调整等腰三角的属性L1:cmp ls,8jz L1_1 mov al,8 jmp L1_2 L1_1:mov al,15L1_2:mov ls,aljmp l4L2:cmp char,0jz l3_1mov char

12、,0jmp l4L2_1:mov char,alL3: jmp xhL4: mov AX, 4C00H ;返回INT 21HMAIN ENDP PrinL PROC near ;输出一行数的子程序,第一个数为 BLpush axpush bxpush dxmov ah,02Hmov dl,0hadd bh,1movzx cx,bhjmp while_1do_1:int 21hwhile_1:loop do_1add bl,48mov dh,bl ;第一个数+48 放到 dh 中,作为循环控制变量do_2:mov dl,dhCMP CHAR,0 ;显示字母/ 数字JZ TTMOV AL,LSAD

13、D AL,48CMP BL,AL JNZ UUMOV DL,CHAR ;到最后一行JMP YYUU:CMP DL,BLJNZ TTMOV DL,CHARJMP YYTT:cmp dl,58jb yysub dl,10yy:call WriteCC;int 21hsub dh,1cmp dh,48jnz do_2cmp bl,49jz do_endadd dh,1do_r:add dh,1mov dl,dhCMP CHAR,0 ;显示字母/ 数字JZ TT2MOV AL,LSADD AL,48CMP BL,AL JNZ UU2MOV DL,CHAR ;到最后一行JMP YY2UU2:CMP DL

14、,BLJNZ TT2MOV DL,CHARJMP YY2TT2:cmp dl,58jb yy2sub dl,10yy2:call WriteCC;int 21hcmp dh,bljnz do_rdo_end:pop dxpop bxpop axretPrinL ENDPPrinIS near ;输出整个等腰三角push ax push bx push cx push dx push si push di push bp push sp pushfMOVZX CX,lsMOV dh,cl ;dh 保存等腰三角的行信息MOV bl,1MOV bh,dh SUB bh,bl_lines:mov ah

15、,2mov dl,0Dhint 21h ;回车mov dl,0Ahint 21h ;换行CALL PrinLinc bldec bh loop _lspopf pop sp pop bp pop di pop si pop dx pop cx pop bx pop axretPrinIS endpEND MAIN ; 程序结束九. 设计过程中质疑(或答辩)记载:1. 简述课程设计中多个功能切换的实现?答:调用主模块中的子程序,通过 call near 和 call far 等子程序调用和返回指令以及提供入口参数来实现各功能模块之间的切换。2.课程设计中,有多少模块是你独立完成的?答:只有一个模块真正是自己独立完成,即按要求显示一个由数字构成的等腰三角形。3. 在课程设计中,觉得你编的程序功能由于时间关系不太完美的地方,有否改进方案?答:课程设计不仅仅局限于平时课堂所学的知识,在这次课程设计中我的程序的代码量可以减少,但会用到比 8086 更高级的微处理器的汇编指令,例如 186 中的 pusha 就等同于 8086中的一个指令组合。但由于时间有限,我不能在此次课程设计中一一去学习并改进。设计者: 吴方圆 日 期: 2009 年 6 月 26 日指导教师评语:评分:签名:年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 课程设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报