武汉理工大学华夏学院 课程设计报告书
课程名称:
汇编程序设计
题 目: 显示倒数子对称等腰三角形
系 名: 信息工程系
专业班级: 软件1111 姓 名: 张 学 号: 10
指导教师: 李捷
2013 年 1 月 4 日
目 录
第一章 题目 .................................................................. 第二章 设计目的 ...................................................................... 第三章 设计内容 3.1.程序的功能. 3.2.程序运行条件 3.3.所需工具软件
.................................................................. ................................................................... .................................................................... ....................................................................
3.4.输入/输出描. .................................................................... 第四章 程序结构. ..................................................................... 4.1程序结构.. .............................................................. ................ 4.2算法,程序见附录.................................................. ................. 第五章 设计步骤. ....................................................................... 第六章 程序流程图........................................................................ 第七章 系统调试及实验结果(输出)............................. ..... .. 第八章.心得体会. ....................................................................... 第九章 附录部分. ..................................................................... 9.1参考文献:....................................................................... ........ 9.2附录: 源程序代码 .................................................................
课程设计任务书
学生姓名: 张 专业班级: 软件1111
指导教师: 李捷 工作单位: 信息工程系 设计题目:显示倒数字对称等腰三角形 初始条件: PC机上实现课程设计
要求完成的主要任务:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
7 7 7 7 7 7 7
6 6 6 6 6 6
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
主要任务:(在规定的时间内完成下列任务)
1. 显示倒等腰三角形每行用用彩色(颜色自定) 2. 在图形下方循环显示自己的学号和姓名(汉语拼音)
时间安排:
12月29日 01月2日~01月3日 01月4日 布置题目,确定任务、查找相关资料 功能分析,模块设计,编写程序,调试程序 答辩后撰写设计报告。 设计报告撰写格式要求:(按提供的设计报告统一格式撰写)
1、 题目: 2、设计目的:
3、设计内容:写出简要的程序功能描述、程序运行条件--所需工具软件、输入/输出描述等。 4、程序结构:① 主要的段定义说明;
② 用到的子程序(宏)的功能说明、调用关系说明、参数传送方式说明等;
③ 主要算法描述等(各模块功能实现及典型指令的应用)。
5、设计步骤(注明时间安排)
6、程序流程图、源程序(程序必须有简单注释,源程序若太长,可作为附录) 7、实验结果(输出)
8、其他值得说明的内容(1)程序结构设计特点;(2)设计、调试程序心得、体会或不足。 附录:①源程序代码(必须有简单注释) ②参考文献
指 导 教 师 签 字:
2012年 12 月29日
年 月 日
系 主 任 签 字:
设计报告: 第一章 题目:显示倒数字对称等腰三角形 第二章 设计目的 1. 巩固和加深课堂所学知识;让同学们了解到在课堂所不能了解的知识,知道什么是汇编。 2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力; 3. 通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。提高同学们的动手能力。 第三章 设计内容 3.1.程序的功能 3.1.1.显示倒等腰三角形每行用用彩色(颜色自定) 3.1.2.在图形下方循环显示自己的学号和姓名(汉语拼音) 3.2.程序运行条件 3.2.1用汇编语言编写出完整的程序,然后编译,分步运行,调试每一部分的程序,然后把代码写到记事本上,改一下文件的扩展名asm。然后利用tddebug 来运行。注意运行的程序和运行的工具要放在一个文件里。 3.3.所需工具软件 所需要的工具有tddebug.exe, edit.com,link.exe,run.exe,obj.exe 等工具。 3.4.输入/输出描 在运行程序时要输入程序的名称,然后一步步运行。最后生成一个obj文件和一个exe文件。打开exe文件就是程序的输出的数字对称等腰的三角形,还有各种色彩,下面还有自己的学号姓名。在等腰三角形的外围还环绕着自己的学号。这是整个程序运行结束后输出的图形。其余见截图部分。 第四章 程序结构 1.算法,程序见附录. 第五章 设计步骤 1.得到题目,分析题目,查阅相关书籍和参考资料,和老师进一步的交流了解题目,对设计项目的功能初步了解。(第一天) 2.初步的完成各个程序的模块化设计,让部分的程序实现要求,初步的完成任务得要求。(第二天)。 3.对各个模块进行编程,并将其联系到一起,整合程序并调试完成任务的要求(第三、四天)。 4.回答问题并书写实验报告书(第五天) 第六章 程序流程图 结束 开始 Main函数 11-ch 显示空格 Cl自减 Cl=0 Call xh,cl=ch Cl=1? Al=cl,cl自减 LOP2BEXIT Cl=ch,bh=2 Cl 自减 Cl=o? LOP2CEXIT,call xh,CRLF Ah=bh,bh 自增 Ch ,dh自增 num偏移地址 Cl>8? 第七章 实验结果(输出) 第八章 .心得体会 经过一周的课程设计让我学习到了许多平时在上课的时候学不到的东西,让我更了解汇编语言,更加认识汇编语言的作用,一下是我这几天课程设计的心得体会。 对于这次课程设计,首先是对汇编语言性质的认识,汇编语言是低级语言,是与各种寄存器和堆栈联系紧密的机器底层语言。之前在课堂上接触到的程序没有针对性,仅仅靠考试和平时的习题远远达不到编程训练的要求,经过这次课程设计之后我才知道我们平时上课学的那只是皮毛中的皮毛,而且要学好汇编必须认真的投入进去。 其次是对汇编语言学习信心的增强。在学习汇编语言之前我们学过C语言,接触汇编之后感觉这是门复杂的课程,较之高级语言,它代码量大,难懂。经过这次课程设计之后我了解到只要认真投入地去思考机器是如何进行逻辑思考的并且熟悉指令,汇编语言的趣味性比高级语言更强。虽然今后的就业方向不一定与汇编息息相关,但作为一个软件工程专业的学生,我们要认真去学习去钻研,过去老师讲课我们总是说听不懂,为这学习委员还找过老师的。考试是我们每个人都担心的不得了,听说上一届的挂科率太大了,对这门课慢慢就失去了信心。只要一提到汇编我们就头疼,经过实训我发现汇编也可以和c语言一样有趣,一样让人学到很多东西。还有就是其实每门课没有所谓的难和易,只要你认真学一切都变得不再那么难。还有就是不要放弃,不懂就要去弄懂,不要轻易地放弃。我认为,在这学期的实验中,不仅培养了思考、动手操作的能力,在各种其它能力上也都有了提高。 更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决0想 。 设计者:张安格 日 期: 2013年1月6日 第九章.附录部分 9.1参考文献: 1.沈美明.温冬婵.《80X86汇编语言程序设计》 清华大学出版社 2.钱晓捷.《汇编语言程序设计》 电子工业出本社 3.朱玉龙.任文岚,朱彤. 《汇编语言程序设计》 清华大学出版社 4.Kip irvine . 《inter汇编语言程序设计》 电子工业出版社 5.王爽.《汇编语言》 清华大学出版社 9.2程序主要代码 DATA SEGMENT NUM DB ' 10212811105 ZhangAnge ','$' col DB 00001000b,00000011b,00000100b,11110111b,11110001b;高四位为背景色低四位为字体颜色 DB 11110110b,11101111b,11100100b,10000010b,10000101b X DB 0 DATA ENDS STAK SEGMENT STACK DW 100H DUP(?) STAK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STAK,DS:DATA START: MOV AX,DATA MOV DS,AX ;========MAIN()=========== CALL CRLF CALL CRLF ;-------------------------- LOP: MOV DH,1 MOV CH,01H LOP1: ;------PRINT SPACE------ MOV CL,4 ADD CL,CH LOP2A: CALL SPACE DEC CL JNZ LOP2A ;------PRINT 左---BEGIN--- MOV CL,CH LOP2B: CMP CL,8 JA LOP2BEXIT MOV AL,CL CALL DISPLA INC CL JMP LOP2B LOP2BEXIT: ;------PRINT 右---BEGIN--- MOV CL,9 SUB CL,CH MOV BH,7 LOP2C: DEC CL JZ LOP2CEXIT MOV AL,BH CALL DISPLA DEC BH JMP LOP2C LOP2CEXIT: ;------PRINT 右--End- MOV CL,4 ADD CL,CH LOP2D: CALL SPACE DEC CL JNZ LOP2D CALL CRLF INC CH CMP CH,8 JBE LOP1 ;============================ MOV DX,OFFSET NUM CALL XH MOV AH,9 INT 21H MOV AH,1 INT 21H ;=========================== MOV AX,4C00H INT 21H ;------------------------ CRLF PROC NEAR PUSH AX PUSH DX MOV AH,2 MOV DL,0AH INT 21H MOV DL,0DH INT 21H POP DX POP AX RET CRLF ENDP ; OUTX PROC NEAR PUSH AX PUSH DX MOV AH,2 INT 21H POP DX POP AX RET OUTX ENDP ;----------------------- SPACE PROC NEAR PUSH AX PUSH DX ;MOV AH,2 MOV DL,' ' PUSH CX PUSH DX MOV DH,CH CALL WriteCC POP DX POP CX ;INT 21H POP DX POP AX RET SPACE ENDP ;---------------------------- DISPLA PROC NEAR PUSH DX MOV DL,AL ADD DL,'0' PUSH CX PUSH DX MOV DH,CH CALL WriteCC POP DX POP CX ;CALL OUTX POP DX RET DISPLA ENDP ;col DB 00001000b,00000011b,00000100b,11110111b,11110001b高四位为背景色低四位为字体颜色 ;DB 11110110b,11101111b,11100000b,10000010b,10000101b WriteCC PROC near push push push push ax bx cx dx push si xor ah,ah mov al,dh mov si,ax mov ah,9 mov al,dl mov bh,0 mov bl,col[si] and bl,0fh mov cx,1 int 10h mov ah,3 int 10h mov ah,2 inc dl int 10h pop si pop dx pop cx pop bx pop ax ret WriteCC ENDP Clrscr PROC near ;清屏 push ax push bx push cx push dx mov ax,0600h mov cx,0 mov dx,184Fh mov bh,7 int 10h mov ah,2 mov bh,0 mov dx,0 int 10h pop dx pop cx pop bx pop ax ret Clrscr ENDP XH PROC near MOV CX,1001H MOV SI,OFFSET NUM LOP3: CALL NB CALL DELAY CALL DELAY CALL Clrscr CALL CD CMP CX,0 JNZ LOP3 XH ENDP ;------------------------ NB PROC NEAR ;学号输出 PUSH AX MOV AH,9 INT 21H POP AX RET NB ENDP ;------------------------- DELAY PROC NEAR ;延时 PUSH AX PUSH CX PUSH BX MOV BX,1600H JX: MOV CX,1600H GOON: MOV AX,0 INC AX INC AX INC AX LOOP GOON DEC BX JNZ JX POP BX POP CX POP AX RET DELAY ENDP ;---------------------- CD PROC NEAR ;字符串段内移位 PUSH AX PUSH DI PUSH SI MOV AH,[SI] MOV DI,21H CIR3: MOV AL,[SI+1] ;字符串内存中循环移动 MOV [SI],AL INC SI DEC DI CMP DI,0 JA CIR3 MOV [SI],AH JMP LOP POP SI POP DI POP AX RET CD ENDP CODE ENDS END START 设计过程中质疑(或答辩)记载: 1. 通过这次汇编课程设计后,谈你的体会? 答:通过这次的课程设计我发现之前在课堂上接触到的程序没有针对性,仅仅靠考试和平时的习题远远达不到编程训练的要求,经过这次课程设计之后我才知道我们平时上课学的那只是很小的一部分,我们要想学好课程设计必须自己亲自动手亲手实践才会找到不足,才会提高自己。 2.课程设计中,你用最多时间完成任务功能是哪个? 答:在课程设计中我花的时间最长的是在等腰三角形外面加上自己的学号,这个问题花了我很长时间,最后在老师还有同学的帮助下终于完成了。这个要用到指针而且左右两面。 3.设计中是自己的完成还是几个同学一起合作完成? 答:设计中是两个人或者三个人在一起讨论的,不管是在颜色设置还是学号的嵌入,都有讨论过。一个人不能解决的问题经过讨论就会出现结果。而且每个人的思维不一样,想法的切入点也不一样,这样就会有多种方法,或者彼此相互提醒。这样可以把程序设计的更加完美,达到更理想的效果。 指导教师评语: 评分: 签名: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务