图形和发声程序课件_第1页
图形和发声程序课件_第2页
图形和发声程序课件_第3页
图形和发声程序课件_第4页
图形和发声程序课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章图形和发声程序10.1显示方式10.2BIOS图形显示中断10.3图形方式下的文本显示10.4动画显示技术10.5发声程序设计10.6

本章我们主要要掌握图形、动画、乐曲的汇编语言程序设计。图形和发声程序10.1显示方式

ROMBIOS显示例程支持多种文本方式和图形方式,每种方式适合于特定适配器。在不同的显示方式下,屏幕显示的分辨率、颜色数和视频显示存储器的组织方式都不同。10.1.1分辨率显示分辨率包括字符分辨率和像素分辨率,分别表示显示器在水平和垂直方向上所能显示的字符数和像素数。显示分辨率和色彩决定了显示器的显示质量,分辨率越高所显示的字符和图像就越清晰,但是需要更多的处理时间和更大的存储空间,而速度和成本也是不容忽视的问题。图形和发声程序10.1显示方式10.1.2BIOS设置显示方式显示方式分为两类:文本方式和图形方式。文本方式主要用于字符文本处理,图形方式又称为所有点可寻址方式。在图形方式下,可通过读写屏幕上各个点的映像,显示出单色或彩色图形。

BIOS显示中断提供了设置各种文本和图形显示方式的功能,程序只要给出调用参数,使用BIOSINT10H即可建立某种显示方式。图形和发声程序0AL=0040*25文本16级灰度CGAMCGAEGAVGA=0380*25文本16色或8色CGAMCGAEGAVGA=04300*200图形4色CGAMCGAEGAVGA=06640*200图形黑白显示CGAMCGAEGAVGA=0780*25文本黑白显示MDAEGAVGA=0D320*200图形16色EGAVGA=10640*350图形4色或16色EGAVGA=12640*480图形16色VGA=13320*200图形256色MCGAVGAAH

调用参数显示方式适合显示器适配器BIOS设置显示方式INT10H常用的显示方式:图形和发声程序例:设置320*200图形256色显示方式。

MOVAH,00HMOVAL,13HINT10H

注意:在为未知的显示器编写程序时,首先应该判断PC机配置的显示适配器并选择与之相适应的最佳显示方式。BIOSINT11H有确定系统配置的功能。这个操作实际上是把设备标志的值回送给AX,其中4位和5位表示显示器的配置及初始的显示方式,如下图所示:01=彩色适配板(40*25彩色)10=彩色适配板(80*25彩色)11=黑白适配板(80*25彩色)01234567图形和发声程序

设备标志字提供的信息是相当原始的,一般只能区分出是单色还是彩色显示。另一种确定适配器的方法是调用BIOSINT10H。

٭确定是否装配VGA适配器。

MOVAH,1AHMOVAL,0INT10H;AL=1AH,有装配VGA适配器,否则没有。

相关代码

运行结果

٭

确定是否装配EGA适配器。

MOVAH,12HMOVBL,10HINT10H;BL=10H,有装配EGA适配器,否则没有。图形和发声程序10.2BIOS图形显示(INT10H)AH

功能调用参数返回参数0CH将一个点写至像素位置AL=像素颜色,取决于显示方式合适的视频显示方式下,BH=显示页号还可以指定颜色。DX=像素列,取决于显示方式

CX=像素行,取决于显示方式0DH读取指定像素位置的颜色。BH=显示页号AL=颜色值

DX=像素列,取决于显示方式

CX=像素行,取决于显示方式例:从坐标(50,0)到(50,320)画一条直线。代码

运行效果例:画一个高50,宽100的矩形。代码

运行效果例:读取坐标为(50,12)像素位置的颜色。代码

debug9图形和发声程序10.3图形方式下的文本显示

大多数图形程序都需要以某种形式显示文本,最简单的一种方法是使用BIOS字符显示功能。许多图形程序还通过使用ASCII码扩展字符集中的图形符号来组成大号的显示字符。例如利用ASCII码为0DBH,0DCH,0DDH,0DEH,0DFH等方块来设计大号字母或文章中的方块标记。例:利用方块符号来组成G字符,背景用品红色,方块符号用浅绿色。

代码

运行结果图形和发声程序10.4动画显示技术

计算机动画是利用计算机图形显示技术来模仿物体活动的效果,一般分为两种类型:逐帧动画和实时动画。逐帧动画技术的最重要的用途是设计图形系列以建立用不同介质表现的动画图象。例如,利用图形系统来制作卡通电影的图片,当把这些图片以适当的速度投影时,就会产生运动的影像。设计这种逐帧动画的图片,对计算机系统的性能没有严格的要求。对实时动画来说,因为直接在终端上显示动画程序执行的结果,所以计算机系统的性能的优劣直接影响动画生成的速度和图象的质量,此时计算机的性能就显得非常重要了。屏幕物体的动画效果,经常通过几何变换来产生,最简单的几何变换有平移、旋转和比例变换,复杂的动画通过组合两个或更多的变换来完成。在所有情况下,变换都是以一个新的图象代替先前的图象来实现。在动画软件中,不仅要能画出一系列连续的图象,而且要能从屏幕上擦除先前的图象,否则,运动的物体就会在屏幕上留下痕迹。擦除和重画屏幕物体有几种实现的方法,最直接的一种方法是在显示图形之前,把图形将要占据的屏幕部分的背景图象保存下来,当要擦出图形时,再把保存的背景图象重新显示出来。另一种擦除屏幕图象的方法是基于XOR操作的方法。

移动案例演示代码变形案例演示代码图形和发声程序可编程时间间隔定时器8253/54CLK时钟输入端GATE门控信号输入端OUT计数/定时输入端控制寄存器(8位)端口号43H计数器0(16位)计数器1计数器2端口号40h端口号41h端口号42h其中CLK输入频率为1.1931817MHz(12348ChHZ)计数器0为系统日时钟提供时基准计数器1用作DRAM刷新的定时信号计数器2用来控制扬声器发声10.5发声程序设计计数初值格式操作模式读写指示选择计数器控制寄存器(8位)端口号43H图形和发声程序例将计数器0设定为模式3,计数初值为4282(BCD)

MOVAL,00110111BOUT43H,ALMOVAX,4282HOUT40H,ALMOVAL,AHOUT40H,AL

计数器的输出频率=1.19318MHz/装入计数器的计数初值。计数器0作为定时器为系统提供计时基准,计时器0的输出端OUT与中断控制器8259A的中断请求端IRQ0相连,为IRQ0提供每秒18.2次的中断信号。计数器1作为定时器使用,其输出脉冲用作DRAM刷新的定时信号。DRAM要求每隔15цs刷新一次,这样,OUT1的输出脉冲的平率是66.2KHz。计数器2用来控制扬声器的发声频率。10.5发声程序设计图形和发声程序例使计数器2在模式3下输出频率为330。

MOVDI,330

MOVAL,0B6HOUT43H,ALMOVDX,12HMOVAX,348CHDIVDIOUT42H,ALMOVAL,AHOUT42H,AL10.5发声程序设计图形和发声程序CLK计数器28255可编程序外围接口芯片GATE扬声器与15.08us触发一次15.08us*33144/2=0.5s下一页图形和发声程序例:写一个发声子程序,入口参数为发声频率和延长节拍。设入口参数发声的频率放在DI中,让计数器3输出频率为DI中的值。moval,0b6hout43h,almovdx,12hmovax,348chdivdiout42h,almoval,ahout42h,al让61端口产生一个脉冲,打开扬声器,脉冲的延长时间由入口参数BX决定。inal,61hmovah,aloral,3out61h,alwait1:movcx,5602delay:loopdelaydecbxjnzwait1moval,ahout61h,al写一个WAITF子程序,延长的时间为15.08цs*CX的值,CX为入口参数waitfprocnearpushaxwaitf1:

inal,61handal,10hcmpal,ahjewaitf1movah,alloopwaitf1popaxretwaitfendp由循环次数决定发声的延长时间的发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论