字符串动画显示汇编语言程序设计

  • 格式:doc
  • 大小:226.00 KB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1总体方案论证 (1)

1.1题目功能分析 (1)

1.2算法说明 (1)

2流程图设计及说明 (2)

2.1主程序流程图设计 (2)

2.2分布具体功能实现流程图设计 (3)

2.2.1字符串右移 (3)

2.2.2字符串下移 (4)

2.2.3字符串闪烁 (5)

3软件设计关键问题或程序段落说明 (5)

3.1提示输入字符串显示功能实现 (5)

3.2向右、向下移动功能实现 (7)

3.3字符串大小写变化实现 (9)

3.4颜色变化功能实现 (10)

3.5退出功能实现 (10)

4调试说明、结果记录及分析 (11)

4.1调试说明 (11)

4.2结果记录与分析 (11)

4.2.1 提示输入字符串 (11)

4.2.2输入后显示字符串 (12)

4.2.3在特定位置从无到有显示 (12)

4.2.4在特定位置向右移动 (13)

4.2.5在特定位置向下移动 (13)

4.2.6小写变成大写加闪烁 (14)

5课程设计收获及心得 (15)

6参考文献 (16)

字符串动画显示汇编语言程序设计

1总体方案论证

1.1题目功能分析

(1)屏幕提示输入字符串;

(2)输入完成后,字符动画显示,显示方式可为:从无到有,从左到右,从上到下,大小写变化、颜色变化等;

(3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。

1.2算法说明

(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;

(2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能;

大小写变化则通过将输入字符与‘a’和‘z’比较,若为小写字母,则减去20H,否则不变;

颜色变化则通过INT 10H的09H功能循环调用实现;

(3)退出功能通过将输入‘Q’和‘q’与其ASC 比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。

2流程图设计及说明

2.1主程序流程图设计

开始

段地址初始化

进入Dos窗口

输出提示信息

输入字符串

显示输入字符串

字符串右移

字符串向下移动

字符串小写变大写

三色变换闪烁

N

按Q,q?

Y

结束

图2-1 主程序流程图

图2-1 字符串动画总流程图

2.2分布具体功能实现流程图设计

2.2.1字符串右移

结束

输完? 获取字符串

Y

Y N

图2-2 字符串右移流程图

开始

输出字符串

设置光标起始位置 延迟1

输出空白覆盖字符串

延迟2

结束?

N

横坐标更新

结束

输完? 获取字符串

Y

Y N

图2-3 字符串下移流程图

开始

输出字符串

设置光标起始位置 延迟1

输出空白覆盖字符串

延迟2

结束?

N

纵坐标更新

3软件设计关键问题或程序段落说明

3.1提示输入字符串显示功能实现

屏幕提示输入字符串主要运用中断INT 21H 的0A H 功能,输入后回车则完成字符串在特定位置的显示。另外,在此段程序中,还通过用空字符串的逐个显示来完成字符从无到有的功能实现。 lea dx ,buf

mov ah ,0ah

结束

Y 图2-4 字符串闪烁流程图

N

获取字符串

开始

N

是否输完? Y 输出字符串

设置起始位置 延迟1

设置字符串颜色

次数已到?

mov bx,2;多字符输入,回车结束,有效内容自第三个始。

mov di,0

B1:

mov al,buf[bx]

cmp al,13;是否是回车?

je AG1

mov buff1[di],al

inc bx

inc di

jmp B1

AG1:

mov ah,0

mov al,2

int10h;黑白文本

OTHER:

mov cx,0ffffh;

AG:

mov dh,7;hang

mov dl,35;lie

mov ah,2

mov bh,0;页号为0

int10h;置光标位置

lea dx,buff1

mov ah,9

int21h;显示字符串

mov dh,7

mov ah,2

mov bh,0

int10h;置光标位置

lea dx,buff2

mov ah,9

int21h;

sub cx,1;

jnz AG ;不等于转移

3.2向右、向下移动功能实现

如流程图可知,向下和向右移动,程序基本相同,只不过一个改变的是行,另一个改变的是列,以下以向右移动为例。主要通过INT 10H 调用,且循环操作一定次数实现。其中,在下一次输出时,为了清除前一个位置的输出,用空字符串替代。另外,通过延时控制移动速度。程序如下:

mov al,3

mov ah,0

int10h;16色文本

mov dl,0;字符串向右移动, 给出起始列

bbb2:

MOV SI,OFFSET buff1

mov di,0

bbb1:

mov dh,7;dh hang dl lie

inc dl

mov ah,2

int10h;置光标位置2号置光标位置9号指定输出,每次显示一个

相关主题