




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
攀 枝 花 学 院学生课程设计(论文)题 目: 动 画 心 学生姓名: 2010年12月22日攀枝花学院本科学生课程设计任务书题目动画心1、课程设计的目的1、培养学生理论联系实际的设计思想,提高学生综合运用汇编语言课程的理论知分析问题、解决问题的能力。2、通过查找、运用设计资料,完成工程设计所必备的基本训练。3、使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)计算机技术实验室进行了汇编课程设计,进行动画“心”控制系统的的设计和文档的撰写,熟悉并能熟练使用汇编语言,加强了对汇编等计算机语言的了解,对编程的知识也能较好地运用。3、主要参考文献1汇编语言程序设计,吴向军等,高等教育出版社,20022IBM-PC汇编语言及程序设计(第2版), 沈美明等,清华大学出版社,20013IBM-PC汇编语言及程序设计实验教程,沈美明等,清华大学出版社 ,20014汇编语言程序设计, 钱晓捷等,电子工业出版社,20005汇编语言程序设计, 张志明等,重庆大学出版社,19974、课程设计工作进度计划1、分析设计准备,周一完成2、编程调试阶段,周二至周三3、编写课程设计报告,周四4、考核,周五指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 年 月 日注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表题目名称 动画心评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日攀枝花学院课程设计 目录 摘 要编制动画是程序设计中一种非常有趣和有价值的学习过程。计算机的动画设计是利用计算机图形显示技术来模仿物体活动的效果。在计算机图形设计中,汇编语言具有潜在的优点,因为显示屏幕上的一个图像由几十个元素组成,处理这些图像元素需要大量的指令。以速度而论,汇编语言程序远比高级语言快得多。最高级的图像元素需要大量的指令。最高级的图形技术,例如动画软件,只有以汇编语言设计才能产生更逼真、更有效的动态画面的效果。本文是着重通过对动画“心”程序的设计实现汇编语言程序设计的编码过程。介绍了汇编语言程序的编辑以及编译,对于动画“心”程序设计思想和设计流程也做出了全面的叙述,并且做出了动画“心”程序各个功能的实现过程以及详细设计过程,最终实现了动画“心”程序的主要功能,完成了本次的课程设计。 关键词 汇编,设计,动画心,MASM系统目 录摘 要I目 录II1、课程设计题目描述和要求11.1 问题提出及功能要求11.2 运行环境11.3 本课题涉及的知识点12、程序的算法设计22.1 设计思路22.2 设计功能22.3 流程图23.程序的具体设计44、程序的调试与运行及结果显示124.1 形成可执行文件124.2 连接程序124.3 调试程序124.4运行程序135、实验总结14参考文献15II攀枝花学院课程设计 程序的具体设计 1、课程设计题目描述和要求1.1 问题提出及功能要求根据学院统一安排,软件工程专业在计算机技术实验室进行了汇编课程设计,我借学院安排的集中学习的机会进行了动画“心”控制系统的的设计和文档的撰写,熟悉并能熟练使用汇编语言,加强了对汇编等计算机语言的了解,对编程的知识也能较好的运用,以及让学生学到如何合理的运用汇编上的知识编程。本次课程设计有如下要求:(1)按任意键进入图形显示;(2)按空格键重复出现“心”;(3)按回车键将重复整个图形;(4)按q键退出程序;1.2 运行环境 1、硬件环境微型计算机(Intel x86系列CPU)一台2、软件环境Windows98/2000/XP操作系统。文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用调试调试程序建议使用调试程序建议使用调试程序建议使用这DDEBUG.EXE。1.3 本课题涉及的知识点本程序主要是利用BIOS功能调用的10H中断类型实现的。 利用其12号功能,设置像素点的颜色、坐标和个数,从而画出图形需要的线段,如画方框、画斜线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。画完图形之后延时,清屏。同时,利用DOS系统功能调用的08号功能,从键盘输入字符。如果是任意键,则进入图形显示;如果是回车键,则重新显示整个图形;如果是空格键,则改变“心”的大小;如果是“q”键,则退出。2、程序的算法设计2.1 设计思路:本程序主要是利用BIOS功能调用的10H中断类型实现的。 利用其12号功能,设置像素点的颜色、坐标和个数,从而画出图形需要的线段,如画方框、画斜线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。画完图形之后延时,清屏。同时,利用DOS系统功能调用的08号功能,从键盘输入字符。如果是任意键,则进入图形显示;如果是回车键,则重新显示整个图形;如果是空格键,则改变“心”的大小;如果是“q”键,则退出。其中牵涉到图形的显示设计。程序中要引入多种图案,具体由方框,对角线,任意水平垂直线,“心”等来形成整个图案。所以要在程序中多次画各种图案来填充整个图形,其代码见后面的程序即可。同时为了实现程序效果,程序中还调用了不少的子程序,如填充子程序,画线子程序,画十字线子程序,画方框子程序,画心子程序,延时子程序,清屏子程序等。其代具体码见后程序所示。在整个程序中,主要运用的指令有:push(压入堆栈);Pop(从堆栈中释放首地址的内容);sub(减法指令);add(加法指令);mov(传送指令);call(过程调用指令);lea(地址传送指令);inc(加一指令);cmp(比较指令);jmp(跳转指令);jnz(条件跳转指令)等。2.2 设计功能程序运行后的功能有:(1)程序运行时显示提示信息,并提示按任意键进入动画心界面。(2)让一个方框向中间由大变小,并留下痕迹,然后出现一个心。(3)按空格键开始刷新心形图案。(4)按其他键首先清除图像,然后重复动画。(5)按Q键退出程序。2.3 流程图:开始 设置显示方式设置背景色,彩色调板显示提示信息从键盘输入任意字符清屏从小到大画方框延时画十字线 画任意水平垂直型 (al)=q?改变“心”的大小填充画“心”延时从键盘输入字符(al)=回车键?(al)=空格键?结束图3.1 动画“心”程序结构图3.程序的具体设计程序源代码如下:data segment full db 0 buff1 db Welcome you to run this programme! db db ;*Please press any key*$ buff2 db ;My heart beats with yours! db ;* Please q to quit *$ data ends code segment main proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov ah,00 mov al,04 int 10h mov ah,0bh mov bh,00 mov bl,1 int 10h mov ah,0bh mov bh,1 mov bl,2 int 10h mov dx,offset buff1 ;显示提示信息 mov ah,09 int 21h mov ah,08 int 21h call clear ;cls sss: call text ;display the text mov di,2 mov al,1 ;draw the big box mov cx,70mov dx,20 mov bx,160 call box mov cx,71 mov dx,21 mov bx,158 again: mov al,1 mov di,0 call box call delay mov al,0 mov di,0 call box inc cx inc dx sub bx,2 cmp cx,94 jnz again mov di,0 ;draw the 2nd box mov cx,95 mov dx,45 mov al,1 mov bx,110 call box mov cx,96 mov dx,46 mov bx,108 again_00: mov al,1 mov di,0 call box call delay call delay mov al,0 mov di,0 call box inc cx inc dx sub bx,2 cmp cx,114 jnz again_00 mov cx,115 ;draw the 3rd box mov dx,65 mov al,1 mov bx,70 call box mov cx,116 mov dx,66 mov bx,68 again_01: mov al,1 mov di,0 call box call delay call delay mov al,0 mov di,0 call box inc cx inc dx sub bx,2 cmp cx,129 jnz again_01 mov di,2 mov al,1 ;draw the small box mov cx,130 mov dx,80 mov bx,40 call box mov di,2 mov al,3 ;对角线 mov si,0 mov cx,71 mov dx,21 mov bx,59 call xie_line mov cx,171 mov dx,121 mov bx,59 call xie_line mov si,1 mov cx,71 mov dx,179 mov bx,59 call xie_line mov cx,171 mov dx,79 mov bx,59 call xie_line mov cx,150 ;十字线 mov dx,20 mov si,0 mov bx,60 call draw_line mov cx,150 mov dx,120 mov bx,60 call draw_line mov cx,70 mov dx,100 mov si,1 mov bx,60 call draw_line mov cx,170 mov dx,100 mov bx,60 call draw_line mov si,1 mov cx,70 mov dx,60 mov bx,60 call mid_line mov cx,170 mov dx,110 mov bx,60 call mid_line mov si,2 mov cx,110 mov dx,20 mov bx,30 call mid_line mov cx,160 mov dx,120 mov bx,30 call mid_line mov si,3 mov cx,70 mov dx,140 mov bx,60 call mid_line mov cx,170 mov dx,90 mov bx,60 call mid_line mov si,4 mov cx,110 mov dx,180 mov bx,30 call mid_line mov cx,160 mov dx,80 mov bx,30 call mid_line mov di,0 mov al,1 ;draw the big box again mov cx,70 mov dx,20 mov bx,160 call box mov di,0 mov al,1 ;draw the small box again mov cx,130 mov dx,80 mov bx,40 call box mov di,0 mov cx,95 mov dx,45 mov al,1 mov bx,110 call box mov cx,115 mov dx,65 mov al,1 mov bx,70 call box mov di,1 ;fill call fill call fill_2 call fill_3 mov cx,149 ;bold mov dx,120 mov al,2 mov bx,60 mov si,0 call draw_line mov cx,151 mov dx,120 mov al,2 mov bx,60 mov si,0 call draw_line heart_: ;draw the heart call cls_box call heart mov ah,08 int 21h cmp al,q jz ok cmp al,20h jz heart_ call clear jmp sss ok: ret main endp fill proc near ;the procedure of fill mov full,0 mov al,5 mov cx,160 mov dx,121 mov si,0 mov bx,60 fill_Y: push cx push dx push bx call draw_line pop bx pop dx pop cx sub bx,2 inc cx add dx,2 inc full cmp full,30 jne fill_y ret fill endp fill_2 proc near mov full,0 mov al,5 mov cx,140 mov dx,121 mov si,0 mov bx,60 fill_Y1: push cx push dx push bx call draw_line pop bx pop dx pop cx sub bx,2 dec cx add dx,2 inc full cmp full,30 jne fill_y1 ret fill_2 endp fill_3 proc near mov al,1 mov full,0 mov si,0 mov cx,140 mov dx,121 mov bx,60 re_fill: push bx push cx push dx call draw_line pop dx pop cx pop bx inc cx inc full cmp full,9 jne re_fill mov full,0 mov cx,159 mov dx,121 mov bx,60 re_fill2: push bx push cx push dx call draw_line pop dx pop cx pop bx dec cx inc full cmp full,9 jne re_fill2 ret fill_3 endp draw_Line proc near ;the procedure of draw a line push bx cmp si,0 jz V_line1 add bx,cx H_line: mov ah,0ch int 10h cmp di,0 jz aa0 cmp di,1 jz aa1 call delay aa1: call delay aa0: inc cx cmp cx,bx jne H_line jmp exit_line V_line1: add bx,dx V_line: mov ah,0ch cmp di,0 jz bb0 cmp di,1 jz bb1 call delay bb1: call delay bb0: int 10h inc dx cmp dx,bx jne V_line exit_line: pop bx ret draw_Line endp xie_line proc near ;the procedure of draw a xie_line add bx,cx cmp si,1 jz xieline_1 xieline_0: mov ah,0ch int 10h inc dx inc cx cmp cx,bx jne xieline_0 jmp exit_xie xieline_1: mov ah,0ch int 10h dec dx inc cx cmp cx,bx jne xieline_1 exit_xie: ret xie_line endp Mid_line proc near ;draw a xie_line add bx,cx cmp si,2 jz midline_2 cmp si,3 jz midline_3 cmp si,4 jz midline_4 midline_1: mov ah,0ch int 10h inc dx add cx,2 cmp cx,bx jne midline_1 jmp exit_lines midline_2: mov ah,0ch int 10h add dx,2 inc cx cmp cx,bx jne midline_2 jmp exit_lines midline_3: mov ah,0ch int 10h dec dx add cx,2 cmp cx,bx jne midline_3 jmp exit_lines midline_4: mov ah,0ch int 10h sub dx,2 inc cx cmp cx,bx jne midline_4 exit_lines: ret mid_line endp box proc near ;draw a box push cx push dx push cx push dx push cx push dx push cx push dx mov si,1 call draw_line ;top pop dx pop cx add cx,bx mov si,0 call draw_line ;right pop dx pop cx mov si,0 call draw_line ;left pop dx pop cx mov si,1 add dx,bx call draw_line ;bottom pop dx pop cx ret box endp space proc near ;display a space mov ah,02 mov dl, int 21h ret space endp return proc near ;回车 mov ah,2 mov dl,0ah int 21h mov dl,0dh int 21h ret return endp text proc near ;显示文本信息 mov bh,0 mov dh,0 mov dl,0 mov ah,2 int 10h mov dx,offset buff2 mov ah,09 int 21h text endp heart proc near mov cx,136 ;draw_heart mov dx,93 mov si,0 mov bx,5 mov al,2 call draw_line mov cx,137 ;draw_heart mov dx,91 mov si,0 mov bx,9 call draw_line mov cx,138 ;draw_heart mov dx,90 mov si,0 mov bx,12 call draw_line mov cx,139 ;draw_heart mov dx,89 mov si,0 mov bx,14 call draw_line mov cx,140 ;draw_heart mov dx,88 mov si,0 mov bx,16 call draw_line mov cx,141 ;draw_heart mov dx,88 mov si,0 mov bx,17 call draw_line mov cx,142 ;draw_heart mov dx,87 mov si,0 mov bx,19 call draw_line mov cx,143 ;draw_heart mov dx,87 mov si,0 mov bx,20 call draw_line mov cx,144 ;draw_heart mov dx,87 mov si,0 mov bx,21 call draw_line mov cx,145 ;draw_heart mov dx,88 mov si,0 mov bx,21 call draw_line mov cx,146 ;draw_heart mov dx,88 mov si,0 mov bx,22 call draw_line mov cx,147 ;draw_heart mov dx,89 mov si,0 mov bx,22 call draw_line mov cx,148 ;draw_heart mov dx,90 mov si,0 mov bx,22 call draw_line mov cx,149 ;draw_heart mov dx,91 mov si,0 mov bx,22 call draw_line mov cx,150 ;1draw_heart mov dx,91 mov si,0 mov bx,22 call draw_line mov cx,151 ;draw_heart mov dx,90 mov si,0 mov bx,22 call draw_line mov cx,152 ;draw_heart mov dx,89 mov si,0 mov bx,22 call draw_line mov cx,153 ;draw_heart mov dx,88 mov si,0 mov bx,22 call draw_line mov cx,154 ;draw_heart mov dx,88 mov si,0 mov bx,21 call draw_line mov cx,155 ;draw_heart mov dx,87 mov si,0 mov bx,21 call draw_line mov cx,156 ;draw_heart mov dx,87 mov si,0 mov bx,20 call draw_line mov cx,157 ;draw_heart mov dx,87 mov si,0 mov bx,19 call draw_line mov cx,158 ;draw_heart mov dx,88 mov si,0 mov bx,17 call draw_line mov cx,159 ;draw_heart mov dx,88 mov si,0 mov bx,16 call draw_line mov cx,160 ;draw_heart mov dx,89 mov si,0 mov bx,14 call draw_line mov cx,161 ;draw_heart mov dx,90 mov si,0 mov bx,12 call draw_line mov cx,162 ;draw_heart mov dx,91 mov si,0 mov bx,9 call draw_line mov cx,163 ;draw_heart mov dx,93 mov si,0 mov bx,5 call draw_line ret heart endp delay proc near ;the procedure of delay push cx push dx mov dx,25 dl2: mov cx,2801 dl3: loop dl3 dec dx jnz dl2 pop dx pop cx ret delay endp clear proc near
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度企业财务顾问培训与咨询服务合同
- 2025年度新型农业用地租赁合同终止及补偿协议范本
- 2025年度高科技产业研发人员劳动合同范本
- 2025城区危险废弃物清运及无害化处理承包合同
- 2025年保险数字化理赔服务人工智能与保险业协同创新报告
- 乡村振兴示范项目资金申请2025年农村教育事业发展报告
- 2025年可穿戴医疗设备市场细分领域发展态势研究报告
- 老年教育课程设置与翻转课堂教学模式创新报告:2025年教育实践
- 基层医疗卫生机构信息化建设中的医疗信息化与医疗服务连续性监管政策报告
- 2025年垃圾处理行业碳减排新动力:填埋气发电技术效益解析
- 2025年基孔肯雅热和登革热防控知识考试试题及参考答案
- 2025-2026学年第一学期安全主题教育
- 汽车美容承包合同(标准版)
- 管道设计培训课件
- 2025-2026学年新交际英语(2024)小学英语一年级上册教学计划及进度表
- 河北省廊坊市2024-2025学年高一下学期期末考试 数学试卷
- 2025年发展对象考试题库附含答案
- 2025年内蒙古中考数学真题(含答案解析)
- 2025年兵团基层两委正职定向考录公务员试题(附答案)
- 会务服务考试试题及答案
- 《心系国防 强国有我》 课件-2024-2025学年高一上学期开学第一课国防教育主题班会
评论
0/150
提交评论