微机原理字符串动画显示.docx

上传人:b****8 文档编号:9875956 上传时间:2023-02-07 格式:DOCX 页数:12 大小:32.65KB
下载 相关 举报
微机原理字符串动画显示.docx_第1页
第1页 / 共12页
微机原理字符串动画显示.docx_第2页
第2页 / 共12页
微机原理字符串动画显示.docx_第3页
第3页 / 共12页
微机原理字符串动画显示.docx_第4页
第4页 / 共12页
微机原理字符串动画显示.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理字符串动画显示.docx

《微机原理字符串动画显示.docx》由会员分享,可在线阅读,更多相关《微机原理字符串动画显示.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理字符串动画显示.docx

微机原理字符串动画显示

 

HEBElUNIVERSlTYOFSClENCEANDTECHNOLOGY

课程设计报告

学生姓名:

甄晓学号:

130704121

专业班级:

电科131班

课程名称:

微型计算机原理及应用技术

学年学期:

2015—2016学年第一学期

同组人员:

张思雨张文娟张哲姚博朗

指导教师:

赵艳

2015年12月

课程设计成绩评定表

学生姓名

甄晓

学号

130704121成绩

专业班级

电科131班

起止时间

12月21日——12月28日

设计题目

字符串动画显示

指导教师评语

指导教师:

年月日

一设计目的1

二设计任务和要求1

三设计内容1

四源代码以及主要代码分析5

五效果及功能展示12

六自己的贡献和心得体会14

字符串的动画显示程序设计

一、设计目的:

1、掌握汇编语言,会利用汇编语言编写一定功能的程序;

2、熟悉DoS环境以及在DoS下会调试编写好的汇编程序;

3、熟悉常用的DOS功能;

4、小组合作完成设计题目。

二、设计任务和要求

1、设计字符串的动画显示程序

2、程序设计基本要求

1)菜单

内容包括:

①输入字符串;②字符串动画显示;③退出。

2)输入字符串

选择该项后,可以输入一个字符串.该字符串即为动画显示时所显示的字符串.

3)字符串动画显示

所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。

4)在主菜单中选择退出项,则结束程序返回DoS。

三、设计内容:

1、使用的DOS功能:

1)显示字符串MOVAH,09H

INT21H;入口参数DS:

DX缓冲区

2)键盘输入一个字符MOVAH,01H

INT21H;AL=输入的字符

3)终止当前程序并返回调用程序MOVAH,4CH

INT21H;AL=退出码

4)输入字符串MOVAH,0AH

INT21H;入口参数DS:

DX缓冲区

2、使用工具和软件:

PC机一台,MASI汇编软件

3、流程图:

1)字符串从右向左移动

2)整体流程图

字符串从右向左移流程图

 

开始

显示菜单

从键盘读入字符

1T

从键盘输入字符串,显示在屏幕,光标前移

接收输入的字符,并存在以Str开头的内存单元

调用字符串移动框图

显示字符串从右向左移动

1

F

延时,等待输入指令

显示"PreSSanykeyto

exit∙∙∙

a

I

输入任意字符

1

F

退出程程序,返回

DoS

 

四、源代码以及主要代码分析

1、字符串从右向左移动程序CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

MOVAX,CODE

MOVDS,AX

MOVAX,0B800H

MOVES,AX

CLD

AGAIN:

MOVAX,3

INT10H;显示文字

LEADX,MENU

MOVAH,9;输出字符串

INT21H

INPUT:

MOVAH,1

INT21H;从键盘输入字符

CMPAL,’1’

JNECP2

CALLSUB01

;JMPINPUT

CP2:

CMPAL,’2'

JNZCP3

CALLSUB02;字符串左右移动

JMPAGAIN;返回到主菜单

CP3:

CMPAL,'3’;返回DOS

JNZINPUT

LEADX,MESG

MOVAH,9

INT21H

MOVAH,1

INT21H

MOVAH,4CH

INT21H

DELAYPROC

PUSH

CX

PUSH

DX

MOV

DX,0100

D1:

MOV

CX,0FFFH

LOOP$

DEC

DX

JNZ

D1

POP

DX

POPCX

RET

DELAYENDP

CSH:

MOVAL,20H

MOVCX,60;初始化

CS1:

REPSTOSB

RET

SUB01:

MOVAX,0E0DH

INT10H

MOVAL,0AH

INT10H

LEADX,STR1

MOVAH,0AH

INT21H;输入一个字符串

MOVAX,0E0AH

INT10H;换行

;RET

SUB02:

CMPSTR1+1,2;取串长最短为2个字符

JNBY2

JMPQUIT

Y2:

CALLLINE;画矩形框

MOVDX,ES

PUSHDS

POPES

MOVDI,1000H

CALLCSH

MOVCL,STR1+1

MOVCH,0;取串长

LEASI,BUF;指向串首

MOVDI,1000H

ADDDI,60-1

MOVNUM,DI

ADDNUM,CX

REPMOVSB;移至显示缓冲区,重复存储字符串

CALLCSH

SHOW:

MOVES,DX

MOVBP,1000H;恢复数据区

Y3:

MOVSI,BP;置源数据区指针

MOVDI,LEFT;找屏幕位置

MOVAH,7CH

MOVCX,60-2

Y4:

LODSB

STOSW;送显存

LOOPY4

MOVAH,1

INT16H

JNZSSS;按任意键,返回主菜单

CALLDELAY

INCBP;源数据区指针后移一位

CMPBP,NUM

JBSS1

MOVBP,1000H;恢复数据区

SS1:

JMPY3

SSS:

MOVSTR1+1,0

QUIT:

XORDI,DI

MOVCX,80*25

MOVAX,720H

REPSTOSW;清全屏

;RET

JMPAGAIN

LINE:

MOVDI,(18*80+10)*2;矩形框

MOVAL,201;左上角

MOVAH,0EHSTOSW

MOVCX,60—2MOVAL,205;REPSTOSWMOVAL,187;

STOSW

ADDDI,20*2MOVAL,186;

STOSW

MOVLEFT,DIMOVCX,60—2MOVAL,20H;REPSTOSWMOVRIGHT,DIMOVAL,186;

STOSW

ADDDI,20*2MOVAL,200;

STOSW

MOVCX,60-2

横框

右上角

竖框

空格

竖框

左下角

MOVAL,205;横框

REPSTOSW

MOVAL,188;右下角

STOSW

RET

MENUDB5DUP(0AH)

DB31DUP(''),'MAINMENU’,0DH,0AH

DB25DUP('’),201,21DUP(205),187,0DH,0AH

DB25DUP(’'),186,'1.InputaString。

.。

',186,0DH,0AH

DB25DUP(’'),186,’2。

DisplayModel.。

’,186,0DH,0AH

DB25DUP(’'),186,’3。

ReturntoDOS..。

',186,0DH,0AH

DB25DUP(’'),200,21DUP(205),188,0DH,0AH

DB28DUP(’’),'Choice(1,2,3):

$’

MESGDB0dh,0ah,0dh,0ah,9,'Pressanykeytoexit...$'

NUMDW0

LEFTDW0

RIGHTDW0

STR1DB21

DB0

BUFDB0DH,20DUP(0)

CoDEENDS

ENDSTART

五、功能效果展示

(1)运行程序后显示的主菜单

(2)按“T显示待输入字符串状态

(3)按“2"字符串在矩形框中从右向左移动

畐DOSBOX0.74fCPUspeed:

3000CydeSIFrame5kip0.Program:

TEMPnLEID。

MAIrlMEMU

1.InPUtaString…。

ZkDiSPlayMUdel…。

3.ReturntoDOS.。

ChOiCetliZ,3):

1

szfħsugb

(4)按“3”显示按任意键返回

MAIMHEMU

1.InputaString。

.ZJispLnyMUdel…3.ReturntoDOS。

..

ChoieeelfZI3):

3

Pressanykeytoexit.

(5)按任意键返回

六、自己的贡献和心得体会

一次微机原理课程设计,一次全新的体验,在这次课程设计中,我们获益良多。

课程设计以小组的形式进行,我们小组五人,每人负责不同的工作,于合作中追求共赢。

张思雨主要负责框图的设计,张哲主要负责设定菜单和字符串的输入,张文娟主要负责字符串移动,我负责边框的设置和程序的返回,姚博朗主要负责内容的串接、最后的检错及报告的编写。

一次程序的设计对于我们这些初入编程界的新手来说,都是一项工作量不少的作业。

在总的程序设计中,需要我们搜集相关的汇编语言,分析每一段程序与其他段之间的联系,并将它们连接起来。

然而这并不是结束,我们还要将其编辑编译运行调试,查询错误,改正错误,使程序正常运行.说实话,刚得到课程设计题目时,我们真的有

点两眼一摸黑,不知如何下手,但经过上网、图书馆查询、课本研究后,我们终于一步步设计好了程序框图,并写出来程序,虽然在程序运行过程中出现了问题,但经过学霸的帮助和相关资料的查找,我们的问题终于得到了解决,完成了本次课程设计.

时间匆匆,转眼就到了考核的日期。

经过这次课程设计,我感觉我的微原知识都经过了一次刷新,添加了更多的内容。

课程设计是一项既考验知识,又考核我们对知识运用的任务。

通过这次课设,我觉得知识不仅要学还要会用,即使老师讲的再好,我们也不能代替老师,所以学到手的知识才是属于我们自己的知识。

另外,对一个团体来说,团结合作很重要.在这次课设中,我们分工合作,每人负责好自己的,又一起商量课设方向,相互帮助,相互关心,那样再难的问题我们都可以解决。

作为大学生我们应该,锐意进取,团结奋斗,向一个个难题迎难而上,而不悔!

同时感谢赵老师在这一年里的照顾,今后我们也会努力学习,积极进取。

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

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1