某某学院
微机原理课程设计
  2013   电气工程及其自动化  专业        班级
        字符图形显示                             
            学号               
指导教师        职称             
О一三 12   13


摘要
本课程设计是通过使用汇编语言来完成的,具体实现的方法可以通过在MASM使用环境下运
行,也可以通过在DOS环境下完成。我做的课程设计是通过编写汇编语言程序,实现字符图形的显示。在编写初期,我对字符“SPORT”进行了设计,确定了每个字符所在的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。接着开始编写程序,编写完程序后,对程序进行了注释,最后调试出所要求的字符。本程序可以在DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能。整个课程设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。
关键词:字符显示,10号中断,图形,BIOS

一、字符图形显示的基本原理 
字符图形显示可以在DOS环境下完成,编写完程序后分析并理解每条程序的意思,并解释主要程序的意思,最后调试出所要求的字符。在程序编写前,我首先对自己显示的图形进行了设计,确定了每个数字相对于前一个数字的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。本次实验实验的编写环境是MAS
M,编译、链接也是在该环境下实现的。程序的运行我使用的是DOS环境。通过参考网上的一些原程序,要编写好该程序,首先应该对BIOS的中断熟悉,因此程序编写前,我先认真学习了该BIOS中断的有关功能 
二、设计方案 
在课程设计之前,首先要明确设计的目的。本次课程设计的题目是字符图形显示,要求我们能够编写一个汇编程序,正确的显示所要求的字符。这就需要我们对汇编指令有一定的了解,通过课程设计,我们能更深入的了解汇编程序的基本框架,更熟练的运用汇编指令。
设计一个字符图形程序,用汇编语言实现在DOS调用下显示实现字符图形“SPORT”,背景颜的ASCII码为03H,字符属性为122,纵坐标相对于光标的初始位置为-2,横坐标性对于光标的初始位置为1.;有清屏和延时功能,并能实现按任意键退出。 
三、硬件设计
首先,定义了一个字符图形表“SPORT”,设置的字符的类型为DB即为字节类型,字符的ACSII码为03H,显示出来的图形为心形,设置字符的属性为122字符串长度和字节。显示完整个字符图形表共
需要102行代码,设置初始字符所在的位置为相对于光标位置的(-2,1)位置,前面的-2表示的是列坐标,而后面的1表示的是行坐标。此后的代码的行列坐标都是相对于前一字符的相对位置,如列坐标的1表示的是向下移动一位,列坐标的-1表示的是像上移动一位,列坐标的0则表示纵向不发生移动。
同理,横坐标的1表示的是向右移动一位,横坐标的-1表示的是像左移动一位,横坐标的0则表示横向不发生移动。此为数据段的内容。  然后定义了一个堆栈段,开辟了大小为2000字节的空间。  接下来则是代码段的内容,包括初始化DS的内容、设置图形方式、设置背景颜、设置彩调板、清屏、延时、按任意键退出等内容。 
四、软件设计 
4.1 主模块及子模块说明 
一开始,我定义了一个字符图形表“SPORT”,设置的字符的类型为DB即为字节类型,字符的ACSII码为03H,显示出来的图形为心形,设置字符的属性为122。显示完整个字符图形表共需要102行代码,设置初始字符所在的位置为相对于光标位置的(-2,1)位置,前面的-2
示的是列坐标,而后面的1表示的是行坐标。此后的代码的行列坐标都是相对于前一字符的相对位置,如列坐标的1表示的是向下移动一位,列坐标的-1表示的是像上移动一位,列坐标的0则表示纵向不发生移动。同理,横坐标的1表示的是向右移动一位,横坐标的-1表示的是像左移动一位,横坐标的0则表示横向不发生移动。此为数据段的内容,接下来定义了一个堆栈段,开辟了大小为2000字节的空间。  然后设计了代码段的内容。首先定义了一个名为MAIN的段间调用过程,过程中包括初始化了DS的内容,设置300*200彩图形方式,设置背景颜为0BH,显示出来的颜为绿,设置彩调板为0BH,显示的颜为绿,再调用清屏子程序CLEAR_SCREEN和延时子程序MOVE_SHAPE,以及任意键退出子程序EXITMAIN过程结束。然后编写了清屏子程序CLEAR_SCREEN,它是一个段内调用的过程。接着编写了延时子程序MOVE_SHAPE,它也是一个段内调用的过程。再接下来则是一段读取字符图形的程序和一段按任意键即可退出程序的程序,最后整个代码段结束。
4.2 各模块详细设计 

                                           

源代码分析
源代码如下:
DATA  SEGMENT       
  CAR  DB        102        ;定义字符图形表
DB        03H,122,-2,1
DB        03H,122,0,1
DB        03H,122,0,1             
DB        03H,122,0,1             
DB        03H,122,0,1             
DB        03H,122,1,-4           
DB        03H,122,1,0           
DB        03H,122,1,0             
DB        03H,122,1,0 
DB        03H,122,0,1           
DB        03H,122,0,1         
DB        03H,122,0,1         
DB        03H,122,0,1   
DB        03H,122,1,0     
DB        03H,122,1,0       
DB        03H,122,1,0   
DB        03H,122,1,0     
DB        03H,122,0,-1     
DB        03H,122,0,-1     
DB        03H,122,0,-1       
DB        03H,122,0,-1
DB        03H,122,0,7         
DB        03H,122,-1,0   
DB        03H,122,-1,0   
DB        03H,122,-1,0     
DB        03H,122,-1,0     
DB        03H,122,-1,0     
DB        03H,122,-1,0     
DB        03H,122,-1,0   
DB        03H,122,-1,0   
DB        03H,122,0,1   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。