汇编语言实现图形显示方式的程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言是一种面向机器的语言,实际上是一种符号化的机器语言,它将机器指令的操作码、操作数由二进制代码改为人们熟悉的符号。其优点是程序代码短,执行速度快,占内存空间小,可充分利用计算机的硬件特性。由于它是相对低级的语言,没有高级语言那样强大的库函数作支撑,所以用汇编语言开发程序,编程工作量大,开发周期长,容易出错且不易调试。但这并不是说汇编语言就会完全被高级语言取代,如果进行涉及计算机控制、通信、动画、虚拟现实程序设计及许多对速度要求较高的软件设计,都常要求使用汇编语言设计。在图形领域,汇编语言具有潜在的优点。如何在汇编编程中实现图形显示效果,主要涉及到以下几方面的内容:

1.中断控制方式

在汇编程序中为了实现图形显示,需要通过中断的控制方式。中断是现代计算机输入/输出程序设计常用的控制方式,用以完成基本输入/输出管理,包括键盘管理及显示处理等。操作系统把一些常用的输入、输出、文件处理等基本操作,编制成若干子程序存放在系统内,这些子程序又称为中断服务程序,对它们的调用均用中断指令INT来进行。我们称之为软中断指令。系统提供的子程序可分为两组:一组在ROM 的BIOS(基本输入/输出系统)中,另一组在操作系统DOS中。

2.ROM BIOS系统调用

通常,有些功能既可以通过DOS中断调用来完成也可以通过BIOS 中断调用来完成。BIOS比DOS更靠近硬件,故硬件控制功能更强,而且执行速度更快,但需要了解的硬件细节也更多,设计起来要麻烦一些,因此,应用程序应尽可能地使用DOS功能调用,不仅容易实现,同时对硬件的依赖性最少。但是少数情况下必须使用BIOS功能,比如在汇编程序中实现图形显示。DOS功能调用中不能显示图形,即使显示字符,也不能设置字符颜色等。BIOS是固化在ROM中的基本输入/输出系统(Basic Input/Output System,BIOS),它由一组例行程序组成,提供了系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块。

3.BIOS的图形显示子功能

表1BIOS的图形显示功能

BIOS提供了相当丰富的显示功能调用,其显示功能集中在10H号中断中,共有16种不同的功能,每个功能有一个编号,对应的编号为00~0FH。当调用某个显示功能时,应根据需要设置好入口参数,把功能号置入AH寄存器中,然后发中断指令“INT10H”。与图形显示有关的子功能主要集中在如表1几个功能号。

在图形方式下,屏幕以像素为单位。中分辨率下,屏幕可分成320*200=64000个像素点,每个像素有四种不同的显示颜色,背景有16种颜色;高分辨率下,屏幕分成640*200=128000个像素点,只支持黑白两色。任何一个图形都可以看作是由点组成的,这些像素点“点亮”或“熄灭”,就构成相应的图形。

4.图形显示实例

在屏幕上显示彩色图形,程序编写的基本步骤是:首先利用10H中断调用的0号功能,将显示方式设置为彩色图形方式,再利用0BH号功能设置背景颜色和彩色组,然后在指定的屏幕坐标上写像素点或读像素点。

例如,在屏幕上设计一个图案,白色背景上绘制黄色横线,屏幕中间为一红色矩形。程序如下:

CODES SEGM ENT

ASSUM E CS:CODES

START:

PUSH DS

SUB AX,AX

PUSH AX

M OV AH,0

M OV AL,4;设置成320*200彩色图形方式

INT10H

M OV AH,0BH

M OV BH,0

M OV BL,7;设置背景颜色,为白色(BL=7)

INT10H

M OV AH,0BH

M OV BH,1

M OV BL,0;前景色选择彩色组0

INT10H

CALL HR;绘制横线子程序

CALL RED;绘制红色矩形子程序

M OV AH,4CH;返回

INT21H

HR PROC NEAR

M OV DX,0;行号起点

LI:M OV CX,0;列号起点

LD:M OV AH,0CH;写像素点

M OV AL,0;颜色为黄色

INT10H

INC CX

CM P CX,300;绘制一行

J NZ LD

ADD DX,20;下一行(间隔20像素)

CM P DX,200;到200行

J NZ LI

RET

HR ENDP

RED PROC NEAR

汇编语言实现图形显示方式的程序设计

武汉软件工程职业学院龚丽

[摘要]通常,高级语言都是通过输出函数来实现各种输出显示效果,汇编语言相对低级,若要显示输出就需要中断调用。对PC机的ROM BIOS进行中断调用,可以实现图形和动画的显示,其功能号为10H,通过选择显示方式设置屏幕像素,并对像素点进行读写来绘制出线条和形状。

[关键词]汇编语言图形显示BIOS中断调用像素

AH功能入口参数出口参数

0设置显示方式AL=显示方式代号

0:40*25黑白文本方式1:40*25彩色文本方式2:80*25黑白文本方式3:80*25彩色文本方式4:320*200彩色图形方式5:320*200黑白图形方式6:640*200黑白图形方式

B设置彩色调色板BH=0:设置当前调色板背景色1:选择调色板

若BH=0,BL=背景颜色号

若BH=1,BL=调色板号

C写像素点DX=像素行号(0~199)CX=像素列号(0~639)BH=页号

AL=像素值

D读像素点DX=像素行号

CX=像素列号

BH=页号

AL=像素值

(下转第267页)

相关文档
最新文档