1、 1 一、课程设计的性质和目的一、课程设计的性质和目的 进一步掌握所学的微机知识,通过所学的知识编写程序,实现简单的动画 显示过程。培养综合运用所学知识,发现,提出,分析和解决实际问题,锻炼 实践能力。 二、课程设计的要求二、课程设计的要求 1菜单 内容包括:输入字符串;字符串动画显示;退出。 2输入字符串 选择该项后,可以输入一个字符串。 3字符串动画显示 所显示字符串在一矩形框内移动,按“+” “-”可实现加速,减速功能。 4. 退出,返回DOS。 三、主要仪器设备及软件三、主要仪器设备及软件 PC机,轻松汇编等. 四四、课题课题分析及设计思路分析及设计思路 软件设计过程 (1)采用模块化
2、程序结构设计软件,可将整个软件分成若干功能模块。 (2)画出程序流程图。 (3)根据流程图,编写源程序。 (4)上机调试程序。 源程序所运用到的指令: DOS键盘功能调用: 【功能号】0AH从键盘输入字符串; 【功能号】0CH清楚键盘缓存区 【功能号】09H显示一个字符串 【功能号】4CH返回操作系统功能调用 指令中断:INT n 汇编语言程序设计:顺序程序设计,循环程序设计,子程序设计; 下图为各程序流程图: 2 N Y N N Y Y 主程序流程图主程序流程图 显示菜单 从键盘输入字符串 从键盘输入字符串显 示,光标移位 存入到 STR1 与1相比 较是否相等 与 2 相比 较是否相等 调
3、用字符串移动框图 显示字符串移动 延时,等待输入命 与3相比 较是否相等 显示“press any key to exit” 输入任意字符 退出 开始 3 矩形框绘画流程图矩形框绘画流程图 赋首地址 画左上角 方框长 度减 去 2 送 CX 画横框 CX 减去 1 CX=0? 画右上角 返回左端 画横框 方框长度减去 2 送 CX 空格 CX 减去 1 CX=0? 返回左端 画竖框 左上角 横框长度减 去 2 送 CX 画横框 CX 减去 1 CX=0? 右下角 结束 4 N N Y Y N Y N N Y Y 加减速流程图加减速流程图 字符串移位流程图字符串移位流程图 开始 获取字符串 设置
4、光标起始位置 输出字符串 输完? 延迟 1 空格代字符 延迟 2 结束? 结束 横坐标更新 开始 获取字符串 设置光标起始位置 输出字符串 +? 延时减少 -? 延时增加 结束? 结束 5 五五、程序主要程序主要代码代码与与分分析析(关键代码要有注释)(关键代码要有注释) : CODE SEGMENT ;代码段开始 ASSUME CS:CODE,DS:CODE START: MOV AX,CODE MOV DS,AX ;装填代码段 MOV AX,0B800H MOV ES,AX CLD ;清除方向标志 AGAIN: MOV AX,3 INT 10H ; 显示 LEA DX,MENU ;目标地址
5、传送,将主菜单有效地址送入DX MOV AH,9 INT 21H ;九号系统功能调用,输出字符串 INPUT: MOV AH,0 INT 16H CMP AL,1 JNZ CP2 CALL SUB01 ;输入一个字符串 JMP INPUT CP2: CMP AL,2 ; 比较指令 JNZ CP3 ; 不为零时跳转 CALL SUB02 ; 调用子程序,字符串左右移动 JMP AGAIN ;转移指令,返回到主菜单 CP3: CMP AL,3 ;返回DOS JNZ INPUT LEA DX,MESG MOV AH,9 INT 21H MOV AH,1 INT 21H ; 一号系统功能调用,键盘输入单字符 MOV AH,4CH INT 21H SPEED PROC PUSH AX PUSH DX MOV AH,6 MOV DL,0FFH INT 21H SPEEDUP: CMP AL,+ ;“+“加速运动 JNZ SPEEDDOWN SUB DLAY1,500 CMP DLAY1,500 JNB EXIT 6 MOV DLAY1,500 JMP EXIT SPEEDDOWN: CMP AL,- ;“-“减速运动 JNZ EXIT ADD DLAY1,500 CMP DLAY1,50000 JB EXIT MOV