网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

动画心控制汇编语言

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
动画心控制汇编语言1 课程设计概述 11.1  设计目的 11.2  设计要求 12 设计内容 13 系统概要设计 24 程序详细设计 24.1  图形显示设计 24.2 主程序设计 34.3  子程序设计 55 程序调试 76 心得体会 8参考文献 8程序主要源代码 120
设计任务:设计一彩色动画的程序。一个颜色方框从四周向中间由大变小,并留下痕迹。中间位置出现一颗“红”心。
设计要求:(1)按任意键进入图形显示;
(2)按空格键重复出现“心”;
(3)按回车键将重复整个图形;
(4)按q键退出程序。作品完成情况:此次课程设计,通过自己查阅各种相关书籍,及向周围同学请教,和指导老师的逐一纠正,基本上算是达到了目标。在编写和调试的过程中,遇到了不少问题,因此也学到了不少。但程序还存在不足之处,还有待改进,由于本人能力有限,所以就到此为止了。120
 

动画心控制汇编语言
动画心控制
1 课程设计概述
根据学院统一安排,计算机科学与技术专业在计算机技术实验室进行了汇编课程设计,本人根据学院安排的集中学习的机会进行动画“心”控制系统的的设计和文档的撰写,熟悉并能熟练使用汇编语言,加强了对汇编等计算机语言的了解,对编程的知识也能较好地运用。
1.1  设计目的
    汇编课程设计是计算机科学与技术专业的基础选修课的实践环节。本课程设计的主要目的是掌握汇编程序设计的基本方法,并掌握汇编程序设计中常见错误的排除和避免。提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力,从而进一步提高了实际运用的能力。
1.2  设计要求
(1)按任意键进入图形显示;
(2)按空格键重复出现“心”;
(3)按回车键将重复整个图形;
(4)按q键退出程序。
2 设计内容
设计一彩色动画的程序。一个颜色方框从四周向中间由大变小,并留下痕迹,中心位置出现一颗红“心”。
编写图形动画程序是程序设计中非常有趣和有价值的工作。以速度而论,汇编语言比高级语言处理指令的速度快得多。用汇编语言设计动画,更逼真、更有效。
图形动画显示的方式有两种:字符图形显示和点像素图形显示。本课程设计是采用点像素图形的动画显示方式而设计的。
3 系统概要设计
本程序主要是利用BIOS功能调用的10H中断类型实现的。 利用其12号功能,设置像素点的颜色、坐标和个数,从而画出图形需要的线段,如画方框、画斜线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。画完图形之后延时,清屏。同时,利用DOS系统功能调用的08号功能,从键盘输入字符。如果是任意键,则进入图形显示;如果是回车键,则重新显示整个图形;如果是空格键,则改变“心”的大小;如果是“q”键,则退出。
4 程序详细设计
4.1  图形显示设计
由程序要实现的显示效果可见,程序中要引入多种图案,具体由方框、对角线、任意水平垂直线、“心”等来形成整个图案。所以要在程序中出现多次画各种图案来填充整个图形,具体步骤如下,其代码见后面关键代码。
(1)画方框,先是设置cx,dx,bx各个寄存器不同的初值,即设置像素点的颜色、坐标和个数,接着由大到小画方框,每画一个方框之前,各个寄存器都要设置不同的初值。
(2)画对角线,和画方框差不多,每画一条对角线之前各个寄存器也要设置不同的初值。
(3)画任意水平垂直线,画十字线之前,各个寄存器如cx,bx,dx也需设定不同的初值。
(4)再由大到小画方框,由程序要显示的效果来分析,还需再一次引入大大小小的方框,故还需要再一次由大到小画方框。
(5)填充,辅助图形画好以后,需要采用行、列坐标连续写像素的方法填充来图形,达到统一合成的效果。填充的代码如下:
call fill
call fill_2
call fill_3
mov cx,149
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
(6)画“心”
由程序显示的效果来看,最关键的就是画“心”这个主要图形了。画“心”的步骤如下面代码所示:
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
4.2         主程序设计
该程序的结构流程图如下图1所示。若图片无法显示请联系QQ3710167,动画心控制汇编语言系统免费,转发请注明源于www.lwfree.cn
 

动画心控制汇编语言






结束图1  动画“心”程序结构图
 
先设置图形显示方式,用点像素形式来显示图形。接着设置背景色和彩色组,利用其12号功能,设置像素点的颜色、坐标和个数,从而画出图形所需要的线段,如画方框、画斜线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。完成图形之后延时,清屏。同时,利用DOS系统功能调用的08号功能,从键盘输入字符。如果是任意键,则进入图形显示;如果是回车键,则重新显示整个图形;如果是空格键,则改变“心”的大小;如果是“q”键,则退出。
4.3  子程序设计
为了实现程序效果,程序中还调用了不少的子程序,如填充子程序、画线子程序、画“十”字线子程序、画方框子程序、画“心”子程序、延时子程序、清屏子程序。下面具体分析延时与清屏两子程序的设计。
(1)延时子程序
先push cx,dx,即先让cx,dx进栈,接着设置dx寄存器的初值为25,利用其12号功能设置cx的初值为2801,利用其13号功能使之循环。在进行循环次数计数(即dx←dx-1)后,判断循环是否结束:如(dx)≠0,继续循环,转移到目标地址d12所在的指令,否则顺序执行。然后dx,cx顺序出栈。最后返回。其流程图如下图2所示。
图2  延时子程序流程图
其延时子程序的关键代码如下:
delay proc near     ;延时子程序
push cx
push dx

dl3:
loop dl3
dec dx
jnz dl2
pop dx
pop cx
ret
delay endp
(2)清屏子程序
先设置功能号al及寄存器bx,cx,dx的初值,接着进入line循环程序。在line循环程序中,先清除缓冲区并请求指定的输入功能,接着利用BIOS功能调用的10H中断类型实现显示器输出控制。。在进行循环次数计数(即cx←cx+1)后,判断循环是否结束:如(cx)≠320,则继续循环,转移到目标地址line所在的指令,否则再设置寄存器cx初值,在进行循环次数计数(即dx←dx+1)后,判断循环是否结束:如(dx)≠200,则继续循环,转移到目标地址line所在的指令,否则顺序执行。最后返回。其关键代码如下,清屏子程序的流程图如下图3所示。
clear proc near     ;清屏子程序
mov al,0
mov bx,0
mov cx,0
mov dx,0
 

动画心控制汇编语言
line:
mov ah,0ch
int 10h
inc cx
cmp cx,320

cmp dx,200
jne line






 ret
clear endp若图片无法显示请联系QQ3710167,动画心控制汇编语言系统免费,转发请注明源于www.lwfree.cn
图3  清屏子程序流程图
5 程序调试
 在masm 集成环境中编译结果连接生成可执行文
图4 连接生成界面图
双击heart.exe,根据屏幕提示信息,按任意键,动画“心”图形开始显示,按空格重复出现“心”,按回车键重复整个图形,按q键退出程序。
6 心得体会
这次汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。
参考文献
[1] 李珍香,刘红梅,赵润林.汇编语言课程设计案例精编[M].北京:中国水利水电出版社,2004,4.
[2] 陆忠华.汇编语言程序设计[M].北京:科学出版社,1993.
[3] 迟成文,王保秀.汇编语言课程设计[M].北京:中国科学技术大学出版社,1993.
 

动画心控制汇编语言
程序主要源代码
call box             ;draw the big 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

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                     ;再由大到小画方框
mov cx,130
mov dx,80
mov bx,40
需要完整内容的请联系QQ3710167,本文免费,转发请注明源于www.lwfree.cn

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  
  • 上一篇资讯: 四功能键七段显示程序
  • 下一篇资讯: 大学学生会简介
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师