1、1 目录 目录 1 “霓虹灯”的模拟显示程序设计 2 1.设计意义与要求. 2 1.1 设计意义 2 1.2 设计要求 2 2.方案确定. 2 3.系统原理阐述. 3 3.1 设计思路 3 3.2 程序中的 BIOS 和 DOS 功能调用 . 3 3.3.程序模块 4 4.软件思想与流程图. 6 4.1 程序功能描述. 6 4.2 流程图 6 5.调试记录及结果分析. 8 5.1 调试过程. 8 5.2 结果记录. 8 6.心得体会. 10 7.参考文献. 10 8附录 源程序清单 11 2 “霓虹灯”的模拟显示程序设计 1.设计意义与要求 1.1 设计意义 通过课程设计,能够对所学知识有更进
2、一步的理解,并能掌握学习理论时没 有注意的细节。调试程序,排除故障有助于提高分析问题、解决问题的能力。课 程设计中碰到的挫折,有助于养成良好的学习习惯、严谨的工作作风。 通过此课程设计的汇编语言练习, 可以熟悉汇编语言的寻址方式和指令系统, BIOS 和 DOS 系统功能调用,程序设计方法并熟悉汇编的编程环境。 1.2 设计要求 设计内容:设计霓虹闪烁的色彩与图案,运行程序自动循环进行霓虹闪烁, 直至单击“ESC”键退出程序。 设计要求: (1) 设计任务及要求分析 (2) 方案确定及任务说明 (3) 系统原理阐述 (4) 程序说明:程序思想,流程图 (5) 调试记录及结果分析 (6) 总结
3、(7) 参考资料 (8) 附录:源程序 2.方案确定 运用 BIOS 功能的 9 号调用,程序设计如下: 3 CALL CURSOR ;调用光标设置子程序 MOV AL,23H MOV BL,0BH PUSH CX MOV CX1 MOV AH,09H INT 10H POP CX 这个程序设计起来占用寄存器较多,略微复杂点,但是它的功能更加完备,更能 实现霓虹灯的颜色变化显示效果,给人一种美感。 3.系统原理阐述 3.1 设计思路 (1) 执行程序时显示一个欢迎界面,提示按大写 S 键进入显示界面 (2) 执行程序这部分程序运用的主要原理是先在屏幕上显示个字符#(宏定义光标位置 PUSH A
4、X ;现场保护 PUSH BX MOV AH,02H MOV BH,0 ;页号 MOV DH,OP1 ;行号 MOV DL,OP2 ;列号 INT 10H POP BX POP AX ENDM 5 这个子程序的重点是设计光标所在页、行、列及其现场保护。使用了 BIOS 功能调用设置光标的位置。 (2) 清屏子程序 CLEAR PROC NEAR ;清屏 MOV AH,06H MOV AL,0 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 MOV BH,07H INT 10H RET CLEAR ENDP 初始化窗口,AL=0 表示全屏滚动,CH=滚动窗口左上角行号
5、,CL=滚动窗口左 上角列号,DH=滚动窗口右下角行号,DL=滚动窗口右下角列号,BH=滚入行的属 性。 (3) 光标的设置 CURSOR PROC NEAR ;光标的设置 MOV AH,02H MOV BH,0 MOV DH,ROW ; 设置行 MOV DL,COLUME ;设置列 INT 10H RET CURSOR ENDP 光标位置的设置,这个子程序与宏定义光标位置类似只是运用有些不同。 (4) 延时子程序 DELAY1 PROC NEAR 6 PUSH CX PUSH DX MOV DX,100 D3: MOV CX,65530 D4: LOOP D4 DEC DX JNZ D3 P
6、OP DX POP CX RET DELAY1 ENDP 这个子程序写法的关键是现场保护(即进栈出栈) ,内外两个循环的设计。延时 程序的主要目的是可以让我们清楚的看到字符在屏幕上的显示过程。 4.软件思想与流程图 4.1 程序功能描述 程序开始,进行清屏,显示欢迎界面。按键输入,如果输入 S 就执行霓虹灯模 拟显示在屏幕中央以字符显示一矩形边框,各边框颜色不同,再按相反的次序 消失的程序,接着出现在一次出现上述边框再消失(使用另外四种颜色) ,否则 就继续等待输入。霓虹灯模拟显示程序执行完后,显示退出提示,等待输入,如 果输入为 ESC 就退出程序,输入其他字符重复上述流程。 4.2 流程图 流程图如下所示: 7 N Y N Y 开始 清屏 输出提示示界 输入字符 输入是否为 S 用#布矩形框 1,反向消失矩形边框 1 用#布矩形框 1,反向消失矩形边框 2 提示输入 ESC 退出 输入字符 输入是否是 ESC 结束 8 5.调试记录及