admin 管理员组文章数量: 1086019
2024年12月31日发(作者:杨戬克星一览表)
(完整word版)字符串动画显示汇编语言程序设计
目 录
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输入后显示字符串 ................................................................................. 11
4.2。3在特定位置从无到有显示 ........................................................................ 12
4.2.4在特定位置向右移动 ................................................................................... 13
4.2。5在特定位置向下移动 ................................................................................ 13
4。2.6小写变成大写加闪烁 ................................................................................ 14
5课程设计收获及心得 ....................................................................................................... 15
6参考文献 ............................................................................................................................ 16
字符串动画显示汇编语言程序设计
1总体方案论证
1.1题目功能分析
(1)屏幕提示输入字符串;
(完整word版)字符串动画显示汇编语言程序设计
(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功能实现。
(完整word版)字符串动画显示汇编语言程序设计
2流程图设计及说明
2.1主程序流程图设计
开始
段地址初始化
进入Dos窗口
输出提示信息
输入字符串
显示输入字符串
字符串右移
字符串向下移动
字符串小写变大写
三色变换闪烁
N
按
Q,q?
Y
结束
图2-1 主程序流程图
图2-1 字符串动画总流程图
(完整word版)字符串动画显示汇编语言程序设计
2。2分布具体功能实现流程图设计
2.2。1字符串右移
开始
获取字符串
设置光标起始位置
输出字符串
N
输完?
Y
延迟1
输出空白覆盖字符串
延迟2
结束?
Y
N
横坐标更新
结束
图2-2 字符串右移流程图
(完整word版)字符串动画显示汇编语言程序设计
2.2。2字符串下移
开始
获取字符串
设置光标起始位置
输出字符串
N
输完?
Y
延迟1
输出空白覆盖字符串
延迟2
结束?
Y
N
纵坐标更新
结束
图2-3 字符串下移流程图
(完整word版)字符串动画显示汇编语言程序设计
2.2.3字符串闪烁
开始
获取字符串
设置字符串颜色
设置起始位置
输出字符串
N
是否输完?
Y
延迟1
N
次数已到?
Y
结束
图2-4 字符串闪烁流程图
3软件设计关键问题或程序段落说明
3。1提示输入字符串显示功能实现
屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位置的显示。
另外,在此段程序中,还通过用空字符串的逐个显示来完成字符从无到有的功能实现。
lea dx,buf
mov ah,0ah
(完整word版)字符串动画显示汇编语言程序设计
int 21h
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
int 10h;
黑白文本
OTHER:
mov cx,0ffffh;
AG:
mov dh,7
;hang
mov dl,35 ;lie
mov ah,2
mov bh,0 ;
页号为0
int 10h ;
置光标位置
lea dx,buff1
mov ah,9
int 21h ;
显示字符串
mov dh,7
(完整word版)字符串动画显示汇编语言程序设计
mov dl,35
mov ah,2
mov bh,0
int 10h ;
置光标位置
lea dx,buff2
mov ah,9
int 21h;
sub cx,1 ;
jnz AG ;
不等于转移
3。2向右、向下移动功能实现
如流程图可知,向下和向右移动,程序基本相同,只不过一个改变的是行,另一个改变的是列,以下以
向右移动为例。主要通过INT 10H 调用,且循环操作一定次数实现。其中,在下一次输出时,为了清除前
一个位置的输出,用空字符串替代.另外,通过延时控制移动速度。程序如下:
mov al,3
mov ah,0
int 10h ;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
int 10h ;置光标位置 2号置光标位置 9号指定输出,每次显示一个
mov ah,09 ;9号功能
inc di
(完整word版)字符串动画显示汇编语言程序设计
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;显示字符的次数
int 10h
cmp di,0fh ; 立即数大小取决于字符串大小
jb bbb1
call delay1
sub dl,0fh ; 设置列
mov SI,OFFSET buff2
mov di,0
ccc1:
mov dh,7 ;dh hang dl lie
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0fh
jb ccc1
call delay2
; mov ah,07
(完整word版)字符串动画显示汇编语言程序设计
; int 21h 首先在一个位置输出 然后输出空白覆盖掉在输出下一个位置
cmp dl,25
jnb xiangxia ; 在这里跳出右移, 转到向下
sub dl,0dh
jmp bbb2
3。3字符串大小写变化实现
因为在ASC
表中大小写相差20H,所以通过将输入字符与‘a’和‘z’比较,若为小写字母,则减
去20H,否则不变.程序如下:
daxiaoxie:
mov dl,7
mov dh,35
MOV SI,OFFSET buff1
mov di,0
a1:
mov al,[SI]
cmp al,’$’
je shansuo
cmp al,'a'
jb next
cmp al,’z'
ja next
sub al,20h
mov [SI],al
next:inc SI
jmp a1
(完整word版)字符串动画显示汇编语言程序设计
3。4颜色变化功能实现
颜色变化功能实现相当于对字符串属性定义,表现出颜色差别,然后循环调用并插入延时。以下程序效果
是三种颜色闪烁,其中aaa1表示黄色,aaa2表示绿色,aaa3表示红色。具体程序如下:
shansuo: ;三种颜色闪烁
call aaa1
call delay1
call aaa2
call delay1 ;内部转换后 还是用BIOS 10h 9号功能调用
call aaa3
call delay1
jmp shansuo
3.5退出功能实现
退出功能通过将输入‘Q’和‘q’与其ASC
比较,跳转到退出程序;而退出程序主要通过INT 21H
的4C H功能实现.
mov ah,08h;q键退出
int 21H
cmp AL,’Q'
je exit
cmp AL,'q'
je exit
exit: mov ah,4ch
int 21h
(完整word版)字符串动画显示汇编语言程序设计
4调试说明、结果记录及分析
4.1调试说明
所谓程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻
辑错误的过程.这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试.
调试过程中出现很多问题。很多次,程序更改后得不到目标文件,主要原因是编程过程中不够细心,而
且没有整体把握.例如,有段名重复的错误,还有对调用不熟悉造成编程过程很痛苦.
4。2结果记录与分析
4.2.1 提示输入字符串
以下是在运行程序后窗口出现的界面,提示输入字符串以及按‘Q’或‘q'退出。如图3.1:
图3。1 提示输入字符串
4。2。2输入后显示字符串
以下是输入字符串后按回车前显示的界面。如图3。2:
(完整word版)字符串动画显示汇编语言程序设计
图3。2 输入字符串
4。2。3在特定位置从无到有显示
以下是按完回车键后依照程序设定位置,光标先跳到第七行、第三十五列,然后逐个字符循环显示字符
串的界面对比。如图3。3:
图3.3 字符串从无到有
(完整word版)字符串动画显示汇编语言程序设计
4。2.4在特定位置向右移动
以下是字符串从第七行、第零列开始右移的对比界面。如图3。4:
图3.4 字符串右移
4.2。5在特定位置向下移动
以下是字符串从第七行、第零列开始下移的对比界面.如图3.5:
(完整word版)字符串动画显示汇编语言程序设计
图3.5 字符串下移
4.2.6小写变成大写加闪烁
以下是字符串中所有小写字母变成大写后进行黄、绿、红依次变化现象对比界面。如图3。6:
图3.6 字符串颜色变化
(完整word版)字符串动画显示汇编语言程序设计
5课程设计收获及心得
学完《微机原理与接口技术》,本以为自己学到的东西挺多,直到课程设计开始,才深刻了解到自己似乎
只了解个皮毛.作为微原中的核心,汇编语言的程序设计在课程学习中只有一章,而且书本上的例题与这次课
程设计任务相比,难度不大.
几乎整整一周的微原课程设计结束,对于我,感受颇深,收获颇多。除了一些以前学过的指令,最深的
感触是对中断INT 21H和INT 10H中一些常用功能的运用.
经过此次课程设计,我通过自己查资料、自己设计编程到最后完成功能实现,最终的成就感比平时更大,因
为我感受到了学以致用,将理论用于实际的效果。
在以后的学习中,我会继续保持这样良好的态度对待任何学习,不论是课程设计还是实习,抑或只是平时
课程学习,我将为了提高自身实践能力而有目的的学习与收获,而不仅仅是为了应付考试或者拿到学位证.
(完整word版)字符串动画显示汇编语言程序设计
6参考文献
[1] 彭虎等编著.微机原理与接口技术(第二版).北京:电子工业出版社,2008
[2] 沈美明,温东禅.IBM-PC汇编语句程序设计(第2版).北京:清华大学出版社,2001
[3] 任向明,卢惠林.汇编语言程序设计实用教程.北京:清华大学出版社,2009
[4] 马力妮.80x86汇编语言程序设计.北京:机械工业出版社,2004
[5] 艾德才.Pentium系列微型计算机原理与接口技术.北京:高等教育出版社,2000
(完整word版)字符串动画显示汇编语言程序设计
附录:程序清单
data segment
buff1 db ' $’
buff2 db ' $'
buf db 100 dup(’$')
buff3 db 'please input a string !',13,10,'$’
buff4 db 'Press Q or q to exit!’,13,10,’$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,buff3;显示提示信息
mov ah,09h
int 21h
lea dx,buff4;显示提示信息
mov ah,09h
int 21h
(完整word版)字符串动画显示汇编语言程序设计
lea dx,buf
mov ah,0ah
int 21h
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
int 10h;黑白文本
OTHER:
mov cx,0ffffh;
AG:
mov dh,7 ;hang
mov dl,35 ;lie
(完整word版)字符串动画显示汇编语言程序设计
mov ah,2
mov bh,0 ;页号为0
int 10h ;置光标位置
lea dx,buff1
mov ah,9
int 21h ;显示字符串
mov dh,7
mov dl,35
mov ah,2
mov bh,0
int 10h ;置光标位置
lea dx,buff2
mov ah,9
int 21h;
sub cx,1 ;
jnz AG ;不等于转移
;********************************************************
*
mov al,3
mov ah,0
int 10h ;16色文本
(完整word版)字符串动画显示汇编语言程序设计
mov dl,0 ;字符串向右移动, 给出起始列
bbb2:
MOV SI,OFFSET buff1
mov di,0
bbb1:
mov dh,7 ;dh hang dl lie
inc dl
mov ah,2
int 10h ;置光标位置 2号置光标位置 9号指定输出,每次显示一个
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;显示字符的次数
int 10h
cmp di,0fh ; 立即数大小取决于字符串大小
jb bbb1
call delay1
;*********************************************************
sub dl,0fh ; 设置列
(完整word版)字符串动画显示汇编语言程序设计
MOV SI,OFFSET buff2
mov di,0
ccc1:
mov dh,7 ;dh hang dl lie
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0fh
jb ccc1
call delay2
; mov ah,07
; int 21h 首先在一个位置输出 然后输出空白覆盖掉在输出下一个位置
cmp dl,25
jnb xiangxia ; 在这里跳出右移, 转到向下
(完整word版)字符串动画显示汇编语言程序设计
sub dl,0dh
jmp bbb2
xiangxia: ;字符串向下移动
mov dl,0
mov dh,7 ;dh hang dl lie
ddd2:
MOV SI,OFFSET buff1
mov di,0
eee1:
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0ah ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0fh
jb eee1
(完整word版)字符串动画显示汇编语言程序设计
call delay1
sub dl,0fh ; 列回到原处,输出空白覆盖
MOV SI,OFFSET buff2
mov di,0
fff1:
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0fh
jb fff1
call delay2
cmp dh,13 ;从第7行 下移到13行
jnb daxiaoxie
inc dh
退出到大小写转换
(完整word版)字符串动画显示汇编语言程序设计
sub dl,0fh
jmp ddd2 ;字符串向下移动 结束
daxiaoxie:
mov dl,7
mov dh,35
MOV SI,OFFSET buff1
mov di,0
a1:
mov al,[SI]
cmp al,’$’
je shansuo
cmp al,'a’
jb next
cmp al,'z’
ja next
sub al,20h
mov [SI],al
next:inc SI
jmp a1
shansuo: ;三种颜色闪烁
call aaa1
call delay1
(完整word版)字符串动画显示汇编语言程序设计
call aaa2
call delay1 ;内部转换后 还是用BIOS 10h 9号功能调用
call aaa3
call delay1
MOV AH,08h;q键退出
INT 21H
cmp AL,’Q’
je exit
cmp AL,'q'
je exit
jmp shansuo
exit: mov ah,4ch
int 21h
;*******************************************************
**
aaa1 proc near ;黄色
MOV SI,OFFSET buff1
mov di,0
mov dl,20
aa1:
mov dh,20 ;dh hang dl lie
inc dl
(完整word版)字符串动画显示汇编语言程序设计
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0ch
jb aa1
ret
aaa1 endp
;******************************************************
aaa2 proc near ;绿色
MOV SI,OFFSET buff1
mov di,0
mov dl,20
aa2:
mov dh,20 ;dh hang dl lie
(完整word版)字符串动画显示汇编语言程序设计
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,0ah ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0ch
jb aa2
ret
aaa2 endp
;******************************************************
**
aaa3 proc near ;红色
MOV SI,OFFSET buff1
mov di,0
(完整word版)字符串动画显示汇编语言程序设计
mov dl,20
aa3:
mov dh,20 ;dh hang dl lie
inc dl
mov ah,2
int 10h ;置光标位置
mov ah,09 ;9号功能
inc di
mov al,[si]
inc si
mov bh,0 ;显示页
mov bl,05h ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0ch
jb aa3
ret
aaa3 endp ;三种颜色闪烁
;*******************************************************
***
(完整word版)字符串动画显示汇编语言程序设计
delay1 proc near
push cx
push bx
mov bx,1fffh
wait4: mov cx,0ffffh
wait5: loop wait5
dec bx
jnz wait4
pop bx
pop cx
ret
delay1 endp
; 延迟1 比延迟二长
;*********************************************************
delay2 proc near
push cx
push bx
mov bx,0ffh
wait2: mov cx,0ffffh
wait3: loop wait3
dec bx
jnz wait2
(完整word版)字符串动画显示汇编语言程序设计
pop bx
pop cx
ret
delay2 endp ;字符串向右移动结束
code ends
end start
本科生课程设计成绩评定表
姓 名
专业、班级
张丹
性 别
女
自动化专业、自动化0805班
课程设计题目:字符串动画显示汇编语言程序设计
课程设计答辩或质疑记录:
(完整word版)字符串动画显示汇编语言程序设计
成绩评定依据:
详见成绩评分表
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年
月 日
成绩评分表
项目
课
程
设
计
说
评分标准
能正确分析设计内容,算法选择合理,并有详细的
方案
论证
能分析设计内容,算法选择满足设计要求,有简单
10
说明
分
设计方案不太满足设计内容及要求,无说明
3≥X≥0
10≥X≥8
7≥X≥4
得分
10≥X≥8
说明、论证.
明
流程图
流程设计正确,并有详细的说明,流程图绘制规范
书
撰
写
设计
流程设计符合设计内容及要求,并有一定说明,流
7≥X≥4
10
分
程图绘制正确
流程设计不太满足设计内容及要求,且无说明,流3≥X≥0
(完整word版)字符串动画显示汇编语言程序设计
程图绘制不太正确
程序设计关键问题或段落有详细说明,程序代码正
软件
确
设计
程序设计关键问题或段落有说明,程序代码基本正
说明
确
10
程序设计关键问题或段落基本无说明,程序代码不
分
完整或不太满足设计要求
结果
能正确记录调试结果,并能分析结果,给出合理的建
分析
议
60分
10≥X≥8
7≥X≥4
3≥X≥0
10≥X≥8
10
分
能记录调试结果,并加以分析
记录调试结果,但无分析
7≥X≥4
3≥X≥0
心得
基本上真实、客观地反映了本人课程设计的收获、
10≥X≥6
体会
心得
10
无感而发,空洞,套话。
分
报告
完全按照报告格式要求,内容充实、详细,完全符
10≥X≥8
规范
合规范
10
分
基本按报告格式要求,内容完整,基本符合规范
未按报告格式要求,不太符合规范
程序上机调试运行结果完全正确
程序调试
程序上机调试运行结果基本满足设计要求
10分
程序上机调试运行结果不太满足设计要求
5≥X≥0
7≥X≥4
3≥X≥0
10≥X≥8
7≥X≥4
3≥X≥0
(完整word版)字符串动画显示汇编语言程序设计
能详细完整地表述设计内容,并能正确回答问题
设计答辩
能完整地表述设计内容,并能回答相关问题
10分
基本表述设计内容,但不能回答相关问题
难度分值
10分
一~三题:7分 四~七题:8分
10≥X≥8
7≥X≥4
3≥X≥0
八~十二题:9分 十三~十七题:10分
纪律及考勤
按照课程设计进度安排完成课程设计任务,按时参加中期检查
10分
及答疑、程序演示及答辩环节.缺席一次扣5分。
总评分数
不及格(60以
优秀(100~90)
良好(89~80)
中等(79~70)
及格(69~60)
下)
版权声明:本文标题:(完整word版)字符串动画显示汇编语言程序设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735698333a1682864.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论