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

上传人:小飞机 文档编号:2792422 上传时间:2023-02-25 格式:DOC 页数:29 大小:216.50KB
返回 下载 相关 举报
字符串动画显示汇编语言程序设计.doc_第1页
第1页 / 共29页
字符串动画显示汇编语言程序设计.doc_第2页
第2页 / 共29页
字符串动画显示汇编语言程序设计.doc_第3页
第3页 / 共29页
字符串动画显示汇编语言程序设计.doc_第4页
第4页 / 共29页
字符串动画显示汇编语言程序设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《字符串动画显示汇编语言程序设计.doc》由会员分享,可在线阅读,更多相关《字符串动画显示汇编语言程序设计.doc(29页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上目 录字符串动画显示汇编语言程序设计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

2、与其ASC比较,跳转到退出程序;而退出程序主 要通过INT 21H的4C H功能实现。 2流程图设计及说明2.1主程序流程图设计字符串右移结束开始 段地址初始化 进入Dos窗口输出提示信息输入字符串显示输入字符串YN字符串向下移动字符串小写变大写 三色变换闪烁按Q,q?图2-1 主程序流程图 图2-1 字符串动画总流程图2.2分布具体功能实现流程图设计2.2.1字符串右移结束 输完?获取字符串YYN图2-2 字符串右移流程图开始 输出字符串设置光标起始位置延迟1输出空白覆盖字符串延迟2 结束?N横坐标更新2.2.2字符串下移结束 输完?获取字符串YYN图2-3 字符串下移流程图开始 输出字符串

3、设置光标起始位置延迟1输出空白覆盖字符串延迟2 结束?N纵坐标更新2.2.3字符串闪烁结束Y图2-4 字符串闪烁流程图N获取字符串开始N是否输完?Y输出字符串设置起始位置延迟1设置字符串颜色次数已到?3软件设计关键问题或程序段落说明3.1提示输入字符串显示功能实现 屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位置的显示。另外,在此段程序中,还通过用空字符串的逐个显示来完成字符从无到有的功能实现。 lea dx,buf mov ah,0ah int 21h mov bx,2 ;多字符输入,回车结束,有效内容自第三个始。 mov di,0B1: mov

4、al,bufbx cmp al,13 ;是否是回车? je AG1 mov buff1di,al inc bx inc di jmp B1AG1: 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 mov dl,35 mov ah,2 mov bh,0 int 10h ;置光标位置 lea dx,buff2

5、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,0bbb1: mov dh,7 ;dh ha

6、ng 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 ; 设置列 mov SI,OFFSET buff2 mov di,0ccc1: mov dh,7 ;dh hang dl lie inc dl mov ah,2

7、 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 ; 在这里跳出右移, 转到向下 sub dl,0dh jmp bbb23.3字符串大小写变化实现 因为在ASC表中大小写相差20H,所以通过将输入字符与a和z比较,

8、若为小写字母,则减去20H,否则不变。程序如下:daxiaoxie: mov dl,7 mov dh,35 MOV SI,OFFSET buff1 mov di,0a1: mov al,SI cmp al,$ je shansuo cmp al,a jb next cmp al,z ja next sub al,20h mov SI,alnext:inc SI jmp a13.4颜色变化功能实现 颜色变化功能实现相当于对字符串属性定义,表现出颜色差别,然后循环调用并插入延时。以下程序效果是三种颜色闪烁,其中aaa1表示黄色,aaa2表示绿色,aaa3表示红色。具体程序如下:shansuo: ;

9、三种颜色闪烁 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,qje exit exit: mov ah,4ch int 21h 4调试说明、结果记录及分析4.1调试说明 所谓程序调试,是将编制的程序投入实际运行前

10、,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。 调试过程中出现很多问题。很多次,程序更改后得不到目标文件,主要原因是编程过程中不够细心,而且没有整体把握。例如,有段名重复的错误,还有对调用不熟悉造成编程过程很痛苦。 4.2结果记录与分析 4.2.1 提示输入字符串 以下是在运行程序后窗口出现的界面,提示输入字符串以及按Q或q退出。如图3.1: 图3.1 提示输入字符串4.2.2输入后显示字符串以下是输入字符串后按回车前显示的界面。如图3.2: 图3.2 输入字符串4.2.3在特定位置从无到有显

11、示 以下是按完回车键后依照程序设定位置,光标先跳到第七行、第三十五列,然后逐个字符循环显示字符串的界面对比。如图3.3: 图3.3 字符串从无到有4.2.4在特定位置向右移动 以下是字符串从第七行、第零列开始右移的对比界面。如图3.4: 图3.4 字符串右移4.2.5在特定位置向下移动 以下是字符串从第七行、第零列开始下移的对比界面。如图3.5: 图3.5 字符串下移4.2.6小写变成大写加闪烁 以下是字符串中所有小写字母变成大写后进行黄、绿、红依次变化现象对比界面。如图3.6: 图3.6 字符串颜色变化5课程设计收获及心得 学完微机原理与接口技术,本以为自己学到的东西挺多,直到课程设计开始,

12、才深刻了解到自己似乎只了解个皮毛。作为微原中的核心,汇编语言的程序设计在课程学习中只有一章,而且书本上的例题与这次课程设计任务相比,难度不大。 几乎整整一周的微原课程设计结束,对于我,感受颇深,收获颇多。除了一些以前学过的指令,最深的感触是对中断INT 21H和INT 10H中一些常用功能的运用。经过此次课程设计,我通过自己查资料、自己设计编程到最后完成功能实现,最终的成就感比平时更大,因为我感受到了学以致用,将理论用于实际的效果。 在以后的学习中,我会继续保持这样良好的态度对待任何学习,不论是课程设计还是实习,抑或只是平时课程学习,我将为了提高自身实践能力而有目的的学习与收获,而不仅仅是为了

13、应付考试或者拿到学位证。6参考文献1 彭虎等编著微机原理与接口技术(第二版)北京:电子工业出版社,20082 沈美明,温东禅IBM-PC汇编语句程序设计(第2版)北京:清华大学出版社,20013 任向明,卢惠林汇编语言程序设计实用教程北京:清华大学出版社,20094 马力妮80x86汇编语言程序设计北京:机械工业出版社,20045 艾德才Pentium系列微型计算机原理与接口技术北京:高等教育出版社,2000附录:程序清单data segmentbuff1 db $ buff2 db $buf db 100 dup($)buff3 db please input a string !,13,1

14、0,$buff4 db Press Q or q to exit!,13,10,$data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax lea dx,buff3;显示提示信息 mov ah,09h int 21h lea dx,buff4;显示提示信息 mov ah,09h int 21h lea dx,buf mov ah,0ah int 21h mov bx,2 ;多字符输入,回车结束,有效内容自第三个始。 mov di,0B1: mov al,bufbx cmp al,13 ;是否是回车? je A

15、G1 mov buff1di,al inc bx inc di jmp B1AG1: 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 mov dl,35 mov ah,2 mov bh,0 int 10h ;置光标位置 lea dx,buff2 mov ah,9 int 21h; sub cx,1 ; jn

16、z AG ;不等于转移;* mov al,3 mov ah,0 int 10h ;16色文本 mov dl,0 ;字符串向右移动, 给出起始列bbb2: MOV SI,OFFSET buff1 mov di,0bbb1: 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 ;

17、 立即数大小取决于字符串大小 jb bbb1 call delay1;* sub dl,0fh ; 设置列 MOV SI,OFFSET buff2 mov di,0ccc1: 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 首先在一个

18、位置输出 然后输出空白覆盖掉在输出下一个位置 cmp dl,25 jnb xiangxia ; 在这里跳出右移, 转到向下 sub dl,0dh jmp bbb2xiangxia: ;字符串向下移动 mov dl,0 mov dh,7 ;dh hang dl lieddd2: MOV SI,OFFSET buff1 mov di,0eee1: 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 10

19、h cmp di,0fh jb eee1 call delay1 sub dl,0fh ; 列回到原处,输出空白覆盖 MOV SI,OFFSET buff2 mov di,0fff1: 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 i

20、nc dh sub dl,0fh jmp ddd2 ;字符串向下移动 结束daxiaoxie: mov dl,7 mov dh,35 MOV SI,OFFSET buff1 mov di,0a1: mov al,SI cmp al,$ je shansuo cmp al,a jb next cmp al,z ja next sub al,20h mov SI,alnext:inc SI jmp a1shansuo: ;三种颜色闪烁 call aaa1 call delay1 call aaa2 call delay1 ;内部转换后 还是用BIOS 10h 9号功能调用 call aaa3 ca

21、ll 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,20aa1: 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,0eh ;color mo

22、v cx,01 ;字符重复一次 int 10h cmp di,0ch jb aa1 retaaa1 endp;*aaa2 proc near ;绿色MOV SI,OFFSET buff1mov di,0mov dl,20aa2: mov dh,20 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov bh,0 ;显示页mov bl,0ah ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa2retaaa2 endp;*aaa3 proc ne

23、ar ;红色MOV SI,OFFSET buff1mov di,0mov dl,20aa3: mov dh,20 ;dh hang dl lieinc dlmov ah,2int 10h ;置光标位置mov ah,09 ;9号功能inc dimov al,siinc simov bh,0 ;显示页mov bl,05h ;colormov cx,01 ;字符重复一次int 10hcmp di,0chjb aa3retaaa3 endp ;三种颜色闪烁;*delay1 proc nearpush cxpush bxmov bx,1fffhwait4: mov cx,0ffffhwait5: loo

24、p wait5dec bxjnz wait4pop bxpop cxretdelay1 endp; 延迟1 比延迟二长;*delay2 proc nearpush cxpush bxmov bx,0ffhwait2: mov cx,0ffffhwait3: loop wait3dec bxjnz wait2pop bxpop cxretdelay2 endp ;字符串向右移动结束code endsend start本科生课程设计成绩评定表姓 名张丹性 别女专业、班级 自动化专业、自动化0805班课程设计题目:字符串动画显示汇编语言程序设计课程设计答辩或质疑记录:成绩评定依据:详见成绩评分表最终

25、评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日成绩评分表项目评分标准得分课程设计说明书撰写60分方案论证10分能正确分析设计内容,算法选择合理,并有详细的说明、论证。10X8能分析设计内容,算法选择满足设计要求,有简单说明7X4设计方案不太满足设计内容及要求,无说明3X0流程图设计10分流程设计正确,并有详细的说明,流程图绘制规范10X8流程设计符合设计内容及要求,并有一定说明,流程图绘制正确7X4流程设计不太满足设计内容及要求,且无说明,流程图绘制不太正确3X0软件设计说明10分程序设计关键问题或段落有详细说明,程序代码正确10X8程序设计关键问题或段落有说明,程序代码

26、基本正确7X4程序设计关键问题或段落基本无说明,程序代码不完整或不太满足设计要求 3X0结果分析10分能正确记录调试结果,并能分析结果,给出合理的建议10X8能记录调试结果,并加以分析7X4记录调试结果,但无分析3X0心得体会10分基本上真实、客观地反映了本人课程设计的收获、心得10X6无感而发,空洞,套话。5X0报告规范10分完全按照报告格式要求,内容充实、详细,完全符合规范10X8基本按报告格式要求,内容完整,基本符合规范7X4未按报告格式要求,不太符合规范3X0程序调试10分程序上机调试运行结果完全正确 10X8程序上机调试运行结果基本满足设计要求7X4程序上机调试运行结果不太满足设计要求3X0设计答辩10分能详细完整地表述设计内容,并能正确回答问题10X8能完整地表述设计内容,并能回答相关问题7X4基本表述设计内容,但不能回答相关问题3X0难度分值10分一三题:7分四七题:8分八十二题:9分十三十七题:10分纪律及考勤10分按照课程设计进度安排完成课程设计任务,按时参加中期检查及答疑、程序演示及答辩环节。缺席一次扣5分。总评分数优秀(10090)良好(8980)中等(7970)及格(6960)不及格(60以下)专心-专注-专业

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号