武汉理工大学《微机原理与接口技术》课程设计说明书
计算机汉字姓名显示软件设计
1设计任务及要求分析
根据任务书进行分析可知,此课程设计要求用汇编语言编写程序显示自己名字“周帆”。设计的基本要求为:使用汇编语言设计一个运行于计算机的汉字姓名显示软件,软件应实现显示作者自己的汉字姓名。可以附加显示时间等其它信息和添加动态显示效果。完成课程设计说明书,且说明书撰写格式应符合《课程设计说明书统一书写格式》。
2系统原理阐述
分析设计任务及要求可以得知编写此汇编程序的基本原理,使用模块化编程,即编写
一个主程序和若干个子程序(延时子程序、提示信息子程序、显示姓名子程序)来完成设计任务所要求的功能,用这种方法思路清晰,主程序完成的功能为:首先要确定初始时刻的光标位置,然后在该位置处分别调用提示信息子程序和显示姓名子程序,为了使我们能够看到自己的名字必须调用延时子程序以增加显示的时间。延时子程序的原理为通过设计循环来增加程序执行的次数,从而达到增加时间的目的,提示信息子程序的原理为通过int 21h的09h功能来完成提示信息的显示。显示姓名子程序的原理为首先通过汉字取模软件完成姓名汉字的编码,经过的方格用1表示,没有经过的方格用0表示,然后应用int 10h的09号功能完成字符的显示,将主程序和各个子程序组合在一起即可完成汇编程序的编制。
3汇编语言程序设计
3.1软件思想
根据设计任务及要求,可以得到汇编语言的基本思想为编写一个主程序和若干个子
程序,各子程序分别为:延时子程序、提示信息子程序、显示姓名子程序,在程序运行时用主程序分别调用各个子程序,即可完成汇编语言程序的编制。因为各个子程序是相互独立的,这样可以先依靠主程序来完成一部分功能,然后通过增加子程序逐渐增加系统的功能,最终达到所要求的功能。这样可以将大问题简化为一个个的小问题,将大程序简化为一个个得小程序,这样可以减小编写程序的难度。
武汉理工大学《微机原理与接口技术》课程设计说明书 3.2流程图
图1 软件流程图
调用延迟 子程序 调用提示信息子程序 结束 调用姓名 子程序 调用清屏 子程序 是否有Q 确定光标 位置 调用延迟时间子程序 检测键盘 状态 光标是否在屏幕底部 调用姓名 子程序 设置初始时刻光标位置 调用提示信息子程序 调用清屏 子程序 设置显示方式 开始 调用提示信息子程序
2
武汉理工大学《微机原理与接口技术》课程设计说明书
3.3各子程序功能及说明
3.3.1主程序说明
CODE SEGMENT ; 程序段代码起始位置
ASSUME CS:CODE, DS:DATA, SS:STACKS ; 程序段,数据段,堆栈地址初始化设置 START: ; 程序开始标识
MOV AX, DATA ; 数据段首地址初始化设置 MOV DS, AX ;
MOV AX, STACKS ; 堆栈首地址初始化设置
MOV SS, AX ;
MOV SP, OFFSET TOP ; 堆栈指针偏址设置 MOV YANSE ,07H
;改变颜色 寄存器 默认值黑底白字 YANSE ,07H 改变此值可以改变颜色 MAIN: CALL FAR PTR CLEARSCR ; 调用显示器设置函数 MOV BH, 0 ; 设置显示的页号 MOV AH,6 ;功能号6H MOV AL,0 ;清窗口
MOV BH,YANSE ;属性为白底黑字 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 INT 10H
PRINTF STRING1,6,20
;以下14行是显示器打印名字
PRINTF STRING2,7,20 ; PRINTF STRING3,8,20 ; PRINTF STRING4,9,20 ; PRINTF STRING5,10,20 ; PRINTF STRING6,11,20 ;
3
武汉理工大学《微机原理与接口技术》课程设计说明书
PRINTF STRING7,12,20 ; PRINTF STRING8,13,20 ; PRINTF STRING9,14,20 ; PRINTF STRING10,15,20 ; PRINTF STRING11,16,20 ; PRINTF STRING12,17,20 ; PRINTF STRING13,18,20 ; PRINTF STRING14,19,20 ; BEGIN:
MOV AH,01 ;从键盘输入字符 INT 21H
CMP AL,'Q' ;输入Q键则退出程序 JE EXIT
CMP AL,'W' ;输入R键则转移 JE AA
CMP AL,'C' ;输入L键则转移 JE BB
JMP BEGIN ;返回BEGIN
AA: MOV YANSE ,70H ;
CALL MOVE_SHAPE_B ;改变颜色 白底黑字 YANSE ,70H 改变此值可以改变颜色
JMP MAIN
BB: MOV YANSE ,35H ;
CALL MOVE_SHAPE_C ;改变颜色 彩色显示 YANSE ,35H 改变此值可以改变颜色
JMP MAIN EXIT:
MOV AH,4CH ;主程序结束 INT 21H
4