1、 微机原理与接口技术微机原理与接口技术 课程设计报告课程设计报告 设计题目:设计题目: 字符串字符串程序程序设计设计 姓姓 名:名: 班班 级:级: 学学 号:号: 同同 组组 人:人: 时时 间:间: 1 / 27 目目 录录 1 总体方案论证 . 3 1.1 题目功能分析 . 3 1.2 算法说明 . 3 2 流程图设计及说明 . 4 2.1 主程序流程图设计 . 4 2.2 分布具体功能实现流程图设计 5 2.2.1 字符串右移 5 2.2.2 字符串下移 6 2.2.3 字符串闪烁 7 3 软件设计关键问题或程序段落说明 . 7 3.1 提示输入字符串显示功能实现 7 3.2 向右、向
2、下移动功能实现 9 3.3 字符串大小写变化实现 11 3.4 颜色变化功能实现 12 3.5 退出功能实现 .12 4 调试说明、结果记录及分析 .13 4.1 调试说明 .13 4.2 结果记录与分析13 4.2.1 提示输入字符串 13 4.2.2 输入后显示字符串13 2 / 27 4.2.3 在特定位置从无到有显示 14 4.2.4 在特定位置向右移动 15 4.2.5 在特定位置向下移动 16 4.2.6 小写变成大写加闪烁 17 5 课程设计收获及心得.19 6 参考文献 .19 附录:程序清单 .20 3 / 27 字符串动画显示汇编语言程序设计 1 总体方案论证 1.1 题目
3、功能分析 (1)屏幕提示输入字符串; (2)输入完成后,字符动画显示,显示方式可为:从无到有,从左到右,从上到下, 大小写变化、颜色变化等; (3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。 1.2 算法说明 (1)屏幕提示输入字符串主要运用中断 INT 21H 的 0A H 功能; (2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能; 大小写变化则通过将输入字符与a和z比较,若为小写字母,则减去 20H, 否 则不变; 颜色变化则通过 INT 10H 的 09H 功能循环调用实现; (3)退出功能通过将输入Q和q与其 ASC比较,跳转到退出程序;而退出 程序主
4、 要通过 INT 21H 的 4C H 功能实现。 4 / 27 2 流程图设计及说明 2.1 主程序流程图设计 图 2-1 字符串动画总流程图 字符串右移 结束 开始 段地址初始化 进入 Dos 窗口 输出提示信息 输入字符串 显示输入字符串 Y N 字符串向下移动 字符串小写变大写 三色变换闪烁 按Q,q? 图2-1 主程序流程图 5 / 27 2.2 分布具体功能实现流程图设计 2.2.1 字符串右移 结束 输完? 获取字符串 Y Y N 图 2-2 字符串右移流程图 开始 输出字符串 设置光标起始位置 延迟 1 输出空白覆盖字符串 延迟 2 结束? N 横坐标更新 6 / 27 2.2
5、.2 字符串下移 结束 输完? 获取字符串 Y Y N 图 2-3 字符串下移流程图 开始 输出字符串 设置光标起始位置 延迟 1 输出空白覆盖字符串 延迟 2 结束? N 纵坐标更新 7 / 27 2.2.3 字符串闪烁 3 软件设计关键问题或程序段落说明 3.1 提示输入字符串显示功能实现 屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位 置的显示。 另外, 在此段程序中, 还通过用空字符串的逐个显示来完成字符从无到有的功能实现。 lea dx,buf mov ah,0ah 结束 Y 图 2-4 字符串闪烁流程图 N 获取字符串 开始 N 是否输完
6、? Y 输出字符串 设置起始位置 延迟 1 设置字符串颜色 次数已到? 8 / 27 int 21h mov bx,2 ;多字符输入,回车结束,有效内容自第三个始。 mov di,0 B1: mov al,bufbx cmp al,13 ;是否是回车? je AG1 mov buff1di,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 9 / 27 mov dl,35 mov ah,2 mov bh,0 int 10h ;置光标位置 lea dx,buff2 mov ah,9 int 21h; sub cx,1