《BIOS和DOS中断调用程序设计课件.ppt》由会员分享,可在线阅读,更多相关《BIOS和DOS中断调用程序设计课件.ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、BIOSBIOS和和DOSDOS中断调用程序设计中断调用程序设计 第第9章章BIOS中断和中断和DOS中断中断 在在在在存存存存储储储储器器器器系系系系统统统统中中中中,内内内内存存存存从从从从0FE000H0FE000H0FE000H0FE000H高高高高端端端端8K8K8K8K的的的的ROMROMROMROM中中中中存存存存放放放放有有有有基基基基本本本本输输输输入入入入输输输输出出出出系系系系统统统统(Basic Basic Basic Basic Input/Output Input/Output Input/Output Input/Output SystemSystemSystem
2、System,BIOSBIOSBIOSBIOS)例例例例行行行行程程程程序序序序。BIOSBIOSBIOSBIOS给给给给PCPCPCPC系系系系列列列列的的的的不不不不同同同同微微微微处处处处理理理理器器器器提提提提供供供供了了了了兼兼兼兼容容容容的的的的系系系系统统统统加加加加电电电电自自自自检检检检、引引引引导导导导装装装装入入入入、主主主主要要要要I/OI/OI/OI/O设设设设备备备备的的的的处处处处理理理理程程程程序序序序以以以以及及及及接接接接口口口口控控控控制制制制等等等等功功功功能能能能模模模模块块块块来来来来处处处处理理理理所有的系统中断所有的系统中断所有的系统中断所有的系
3、统中断。使使使使用用用用BIOSBIOSBIOSBIOS功功功功能能能能调调调调用用用用,给给给给程程程程序序序序员员员员编编编编程程程程带带带带来来来来极极极极大大大大方方方方便便便便。程程程程序序序序员员员员不不不不必必必必了了了了解解解解硬硬硬硬件件件件的的的的具具具具体体体体细细细细节节节节,可可可可直直直直接接接接使使使使用用用用指指指指令令令令设设设设置置置置参参参参数数数数,并并并并中中中中断断断断调调调调用用用用BIOSBIOSBIOSBIOS例例例例行行行行程程程程序序序序,所所所所以以以以利利利利用用用用BIOSBIOSBIOSBIOS功功功功能调用编写的程序简洁,可读性好
4、,而且易于移植能调用编写的程序简洁,可读性好,而且易于移植能调用编写的程序简洁,可读性好,而且易于移植能调用编写的程序简洁,可读性好,而且易于移植 磁盘操作系统磁盘操作系统磁盘操作系统磁盘操作系统(Disk Operating SystemDisk Operating SystemDisk Operating SystemDisk Operating System)是)是)是)是PCPCPCPC机上最重要的操作系统,它是由软盘或硬盘提供机上最重要的操作系统,它是由软盘或硬盘提供机上最重要的操作系统,它是由软盘或硬盘提供机上最重要的操作系统,它是由软盘或硬盘提供的。它的两个的。它的两个的。它的两
5、个的。它的两个DOSDOSDOSDOS模块模块模块模块IBMBIO.COMIBMBIO.COMIBMBIO.COMIBMBIO.COM和和和和IBMDOS.COMIBMDOS.COMIBMDOS.COMIBMDOS.COM使使使使BIOSBIOSBIOSBIOS使用起来更方便。因为使用起来更方便。因为使用起来更方便。因为使用起来更方便。因为DOSDOSDOSDOS模块提供了更多更必模块提供了更多更必模块提供了更多更必模块提供了更多更必要的测试,要的测试,要的测试,要的测试,使用使用使用使用DOSDOSDOSDOS操作比使用相应功能的操作比使用相应功能的操作比使用相应功能的操作比使用相应功能的B
6、IOSBIOSBIOSBIOS操作操作操作操作更简易,而且更简易,而且更简易,而且更简易,而且DOSDOSDOSDOS对硬件的依赖性更少些对硬件的依赖性更少些对硬件的依赖性更少些对硬件的依赖性更少些。DOSDOSDOSDOS模块和模块和模块和模块和ROM BIOSROM BIOSROM BIOSROM BIOS的关系如下图所示。的关系如下图所示。的关系如下图所示。的关系如下图所示。DOS中断和中断和BIOS中断使用方法中断使用方法 DOSDOSDOSDOS功功功功能能能能调调调调用用用用与与与与BIOSBIOSBIOSBIOS功功功功能能能能都都都都通通通通过过过过软软软软件件件件中中中中断断
7、断断调调调调用用用用。在在在在中中中中断断断断调调调调用用用用前前前前需需需需要要要要把把把把功功功功能能能能号号号号装装装装入入入入AHAHAHAH寄寄寄寄存存存存器器器器,把把把把子子子子功功功功能能能能号号号号装装装装入入入入ALALALAL寄寄寄寄存存存存器器器器,除除除除此此此此之之之之外外外外,还还还还需需需需要要要要在在在在CPUCPUCPUCPU的的的的寄寄寄寄存存存存器器器器中中中中提提提提供供供供专专专专门门门门的的的的调调调调用用用用参参参参数数数数。一一一一般般般般来来来来说说说说,调调调调用用用用DOSDOSDOSDOS或或或或BIOSBIOSBIOSBIOS功能时,
8、有以下几个步骤:功能时,有以下几个步骤:功能时,有以下几个步骤:功能时,有以下几个步骤:(1 1 1 1)将调用参数装入指定的寄存器。)将调用参数装入指定的寄存器。)将调用参数装入指定的寄存器。)将调用参数装入指定的寄存器。(2 2 2 2)如需功能调用号,把它装入)如需功能调用号,把它装入)如需功能调用号,把它装入)如需功能调用号,把它装入AHAHAHAH。(3 3 3 3)如需子功能调用号,把它装入)如需子功能调用号,把它装入)如需子功能调用号,把它装入)如需子功能调用号,把它装入ALALALAL。(4 4 4 4)按中断号调用)按中断号调用)按中断号调用)按中断号调用DOSDOSDOSD
9、OS或或或或BIOSBIOSBIOSBIOS。(5 5 5 5)检查返回参数是否正确。)检查返回参数是否正确。)检查返回参数是否正确。)检查返回参数是否正确。地址(地址(地址(地址(HexHex)类型码类型码类型码类型码 中断名称中断名称中断名称中断名称8083 20 8083 20 程序结束,返回程序结束,返回程序结束,返回程序结束,返回DOSDOS8487 21 DOS8487 21 DOS系统功能调用系统功能调用系统功能调用系统功能调用888B 22 888B 22 程序结束地址程序结束地址程序结束地址程序结束地址8C8F 23 CTRL_BREAK8C8F 23 CTRL_BREAK退
10、出地址退出地址退出地址退出地址9093 24 9093 24 标准错误出口地址标准错误出口地址标准错误出口地址标准错误出口地址9497 25 9497 25 绝对磁盘读绝对磁盘读绝对磁盘读绝对磁盘读989B 26 989B 26 绝对磁盘写绝对磁盘写绝对磁盘写绝对磁盘写9C9F 27 9C9F 27 程序结束,驻留内存程序结束,驻留内存程序结束,驻留内存程序结束,驻留内存A0FF 283F A0FF 283F 为为为为DOSDOS保留保留保留保留10017F 405F 10017F 405F 保留保留保留保留(扩充(扩充BIOS中断向量)中断向量)18019F 6067 为用户软中断保留为用户
11、软中断保留1A01FF 687F 不用(其中不用(其中70777077为为I/OI/O设备中断向量)设备中断向量)200217 8085 BASIC使用使用2183C3 86F0 BASIC运行时,用于解释运行时,用于解释3C43FF F1FF 未用未用表表表表9.2 DOS9.2 DOS9.2 DOS9.2 DOS中断类型中断类型中断类型中断类型9.1 键盘键盘I/O 9.1.1 ASCII与扫描码与扫描码 9.1.2 BIOS键盘中断键盘中断 9.1.3 DOS中断调用中断调用9.1.1 ASCII与扫描码与扫描码 键键盘盘是是计计算算机机最最基基本本的的一一种种输输入入设设备备,用用来来
12、输输入入信信息息,以以达达到到人人机机对对话话的的目目的的。键键盘主要由盘主要由3 3种基本类型的键组成:种基本类型的键组成:(1 1)字符数字键字符数字键:(2 2)扩展功能键扩展功能键:如:如HomeHome、EndEnd、BackspaceBackspace、DeleteDelete、InsertInsert、PgUpPgUp、PgDownPgDown以及功能键以及功能键F1F1F10F10(3 3)和其他键组合使用的控制键和其他键组合使用的控制键:如:如AltAlt,CtrlCtrl,ShiftShift等等 该处理程序从该处理程序从该处理程序从该处理程序从82558255825582
13、55可编程外围接口芯片的输入端口读取一个可编程外围接口芯片的输入端口读取一个可编程外围接口芯片的输入端口读取一个可编程外围接口芯片的输入端口读取一个字节,这个字节的低字节,这个字节的低字节,这个字节的低字节,这个字节的低7 7 7 7位是按键的扫描码。最高位为位是按键的扫描码。最高位为位是按键的扫描码。最高位为位是按键的扫描码。最高位为0 0 0 0或者为或者为或者为或者为1 1 1 1,分别表示键是分别表示键是分别表示键是分别表示键是“按下按下按下按下”状态还是状态还是状态还是状态还是“放开放开放开放开”状态。状态。状态。状态。按下时,取得的按下时,取得的按下时,取得的按下时,取得的字节称为
14、字节称为字节称为字节称为通码通码通码通码,放开时取得的字节称为放开时取得的字节称为放开时取得的字节称为放开时取得的字节称为断码断码断码断码。如如如如:按下按下按下按下ESCESCESCESC键取得的通码为键取得的通码为键取得的通码为键取得的通码为01H01H01H01H(0 0 0 0B B B B),),),),放开放开放开放开ESCESCESCESC键时会产生一个断码键时会产生一个断码键时会产生一个断码键时会产生一个断码81H81H81H81H(1 1 1 1B B B B)。)。)。)。BIOS BIOS BIOS BIOS键盘处理程序将取得的扫描码转换成相应的键盘处理程序将取得的扫描码
15、转换成相应的键盘处理程序将取得的扫描码转换成相应的键盘处理程序将取得的扫描码转换成相应的字符码,字符码,字符码,字符码,大部分的字符码是一个标准的大部分的字符码是一个标准的大部分的字符码是一个标准的大部分的字符码是一个标准的ASCIIASCIIASCIIASCII码码码码;没有相应;没有相应;没有相应;没有相应ASCIIASCIIASCIIASCII的键,如的键,如的键,如的键,如AltAltAltAlt和功能键(和功能键(和功能键(和功能键(F1F1F1F1F10F10F10F10),字符码为),字符码为),字符码为),字符码为0 0 0 0;还有一些非;还有一些非;还有一些非;还有一些非A
16、SCIIASCIIASCIIASCII码键产码键产码键产码键产生一个指定的操作。生一个指定的操作。生一个指定的操作。生一个指定的操作。键盘缓冲区键盘缓冲区键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下:键盘缓冲区是一个环形队列,键盘缓冲区是一个环形队列,键盘缓冲区是一个环形队列,键盘缓冲区是一个环形队列,Buff_HeadBuff_HeadBuff_HeadBuff_Head和和和和Buff_HeadBuff_HeadBuff
17、_HeadBuff_Head是缓冲区是缓冲区是缓冲区是缓冲区的两个指针,当缓冲区满时,系统将不再接受按键信息,而会发出的两个指针,当缓冲区满时,系统将不再接受按键信息,而会发出的两个指针,当缓冲区满时,系统将不再接受按键信息,而会发出的两个指针,当缓冲区满时,系统将不再接受按键信息,而会发出“嘟嘟嘟嘟”的声音,以示要暂缓按键。当的声音,以示要暂缓按键。当的声音,以示要暂缓按键。当的声音,以示要暂缓按键。当KBHeadKBHeadKBHeadKBHeadKBTailKBTailKBTailKBTail时,表示无键时,表示无键时,表示无键时,表示无键盘输入。盘输入。盘输入。盘输入。Buff_Hea
18、d DWBuff_Head DW?;其内存地址为其内存地址为其内存地址为其内存地址为0000:041AH0000:041AH,缓冲区头指针,缓冲区头指针,缓冲区头指针,缓冲区头指针Buff_TailBuff_Tail DW DW?;其内存地址为其内存地址为其内存地址为其内存地址为0000:041CH0000:041CH,缓冲区尾指针,缓冲区尾指针,缓冲区尾指针,缓冲区尾指针KBBuffKBBuff DW DW16 DUP(?);16 DUP(?);其内存地址为其内存地址为其内存地址为其内存地址为0000:041EH0000:041EH,该缓冲区,该缓冲区,该缓冲区,该缓冲区 的缺省长度为的缺省
19、长度为的缺省长度为的缺省长度为1616个字个字个字个字 mov ah,0 int 16h mov BX,AX 从键盘读字符从键盘读字符从键盘读字符从键盘读字符1按下右移键按下右移键Right Shift1按下左移键按下左移键Left Shiftv1按下按下Ctrl1按下按下Alt1Scrll Lock状态已改变状态已改变1Num Lock状态已改变状态已改变1Caps Lock状态已改变状态已改变1Insert状态已改变状态已改变键盘状态字节键盘状态字节Again:mov ah,2 int 16h mov bx,ax call binihex mov dl,0dh mov ah,2 int 2
20、1h jmp again例例例例9.1 9.1 9.1 9.1 读取键盘状态字,并以十六进制显示读取键盘状态字,并以十六进制显示读取键盘状态字,并以十六进制显示读取键盘状态字,并以十六进制显示 get_key:mov ah,1get_key:mov ah,1 int 21h int 21h cmp al,y cmp al,y je yes je yes cmp al,n cmp al,n je no je no jne get_key jne get_key1 1)单字符输入)单字符输入)单字符输入)单字符输入例例例例9.2 9.2 接收键盘输入并对其进行测试。接收键盘输入并对其进行测试。接收
21、键盘输入并对其进行测试。接收键盘输入并对其进行测试。wait_here:mov ah,7wait_here:mov ah,7 int 21h int 21h cmp al,0dh cmp al,0dh jne wait_here jne wait_here例例例例9.3 9.3 检测键盘输入的字符是否是回车键。检测键盘输入的字符是否是回车键。检测键盘输入的字符是否是回车键。检测键盘输入的字符是否是回车键。mov ah,7 mov ah,7 mov ah,7 mov ah,7 int 21h int 21h int 21h int 21h cmp al,0 cmp al,0 cmp al,0 c
22、mp al,0 je get_ec je get_ec je get_ec je get_ec jmp error jmp error jmp error jmp errorget_ec:get_ec:get_ec:get_ec:mov ah,7 mov ah,7 mov ah,7 mov ah,7 int 21h int 21h int 21h int 21h cmp al,3bh cmp al,3bh cmp al,3bh cmp al,3bh;F1;F1;F1;F1 je option1 je option1 je option1 je option1 cmp al,3ch cmp al
23、,3ch cmp al,3ch cmp al,3ch;F2;F2;F2;F2 je option2 je option2 je option2 je option2 jmp erroe jmp erroe jmp erroe jmp erroe 如果程序要求能接收功能键如果程序要求能接收功能键如果程序要求能接收功能键如果程序要求能接收功能键或数字组合键必须进行两次或数字组合键必须进行两次或数字组合键必须进行两次或数字组合键必须进行两次DOSDOS功能调用功能调用功能调用功能调用:第一次回送第一次回送第一次回送第一次回送0000第二次回送扫描码第二次回送扫描码第二次回送扫描码第二次回送扫描码例例
24、例例9.4 9.4 检测键盘输入的功能键检测键盘输入的功能键检测键盘输入的功能键检测键盘输入的功能键。data segmentdata segmentdata segmentdata segment smax db 21 smax db 21 smax db 21 smax db 21 sact db?sact db?sact db?sact db?stri db 21 dup(?)stri db 21 dup(?)stri db 21 dup(?)stri db 21 dup(?)data endsdata endsdata endsdata endscode segmentcode seg
25、mentcode segmentcode segment assume cs:code,ds:data assume cs:code,ds:data assume cs:code,ds:data assume cs:code,ds:data Start:mov ax,dataStart:mov ax,dataStart:mov ax,dataStart:mov ax,data mov ds,ax mov ds,ax mov ds,ax mov ds,ax lea dx,stri lea dx,stri lea dx,stri lea dx,stri mov ah,0ahmov ah,0ahmo
26、v ah,0ahmov ah,0ah int 21h int 21h int 21h int 21h mov ah,4ch mov ah,4ch mov ah,4ch mov ah,4ch int 21h int 21h int 21h int 21h code ends code ends code ends code endsEnd startEnd startEnd startEnd start(1)smax db 21(1)smax db 21(1)smax db 21(1)smax db 21 sact db?sact db?sact db?sact db?stri db 21 du
27、p(?)stri db 21 dup(?)stri db 21 dup(?)stri db 21 dup(?)(2)smax db 21(2)smax db 21(2)smax db 21(2)smax db 21 db?db?db?db?db 21 dup(?)db 21 dup(?)db 21 dup(?)db 21 dup(?)(3)smax db 21,?,21 dup(?)(3)smax db 21,?,21 dup(?)(3)smax db 21,?,21 dup(?)(3)smax db 21,?,21 dup(?)例例例例9.5 9.5 输入字符串程序输入字符串程序输入字符串程
28、序输入字符串程序2 2)输入字符串)输入字符串)输入字符串)输入字符串Int 21Int 21的功能的功能的功能的功能0ch0ch能清除键盘缓冲区,然后执行在能清除键盘缓冲区,然后执行在能清除键盘缓冲区,然后执行在能清除键盘缓冲区,然后执行在ALAL中指定的中指定的中指定的中指定的功能。功能。功能。功能。ALAL中指定的功能可以是中指定的功能可以是中指定的功能可以是中指定的功能可以是1 1,6 6,7 7,8 8或或或或0AH0AH。mov mov ahah,0ch,0chmov mov alal,08h,08h int 21hint 21h inc al inc al je exit je
29、exitExit:Exit:3)清除键盘缓冲区)清除键盘缓冲区 显示器可以简单的分为单色显示器和彩色显示器。随着显示显示器可以简单的分为单色显示器和彩色显示器。随着显示显示器可以简单的分为单色显示器和彩色显示器。随着显示显示器可以简单的分为单色显示器和彩色显示器。随着显示技术的发展,种类也更加丰富,常见的有阴极摄像管(技术的发展,种类也更加丰富,常见的有阴极摄像管(技术的发展,种类也更加丰富,常见的有阴极摄像管(技术的发展,种类也更加丰富,常见的有阴极摄像管(CRT)CRT)CRT)CRT)、液、液、液、液晶显示器、等离子显示器等。晶显示器、等离子显示器等。晶显示器、等离子显示器等。晶显示器、
30、等离子显示器等。显示器是通过显卡与主机相连显示器是通过显卡与主机相连显示器是通过显卡与主机相连显示器是通过显卡与主机相连。显示器的显示屏通常称之为屏幕,现在常用的显示器有显示器的显示屏通常称之为屏幕,现在常用的显示器有显示器的显示屏通常称之为屏幕,现在常用的显示器有显示器的显示屏通常称之为屏幕,现在常用的显示器有14141414和和和和17171717,常用的显示分辨率为,常用的显示分辨率为,常用的显示分辨率为,常用的显示分辨率为800600800600800600800600或或或或1024768102476810247681024768等。常用的显示卡等。常用的显示卡等。常用的显示卡等。常
31、用的显示卡类型为类型为类型为类型为VGAVGAVGAVGA、SVGASVGASVGASVGA、EVGAEVGAEVGAEVGA和和和和TVGATVGATVGATVGA等,显示卡上也都带有大量的显等,显示卡上也都带有大量的显等,显示卡上也都带有大量的显等,显示卡上也都带有大量的显示存储器,能快速显示精美的图象。示存储器,能快速显示精美的图象。示存储器,能快速显示精美的图象。示存储器,能快速显示精美的图象。1 1 1 1MDAMDAMDAMDA MDAMDAMDAMDA(Monochrome Monochrome Monochrome Monochrome Display Display Disp
32、lay Display Adapter Adapter Adapter Adapter)属属属属于于于于单单单单色色色色显显显显示示示示适适适适配配配配器器器器,是是是是IBMIBMIBMIBM最早研制的视频显示适配器。最早研制的视频显示适配器。最早研制的视频显示适配器。最早研制的视频显示适配器。2 2 2 2CGACGACGACGA 在在在在 MDAMDAMDAMDA推推推推 出出出出 的的的的 同同同同 时时时时,IBMIBMIBMIBM也也也也 推推推推 出出出出 了了了了 彩彩彩彩 色色色色 图图图图 形形形形 显显显显 示示示示 适适适适 配配配配 器器器器CGACGACGACGA(
33、Color Graphics AdapterColor Graphics AdapterColor Graphics AdapterColor Graphics Adapter)。)。)。)。9.2 显示器显示器I/O3 3 3 3EGAEGAEGAEGA 增增增增 强强强强 图图图图 形形形形 显显显显 示示示示 适适适适 配配配配 器器器器 EGAEGAEGAEGA(Enhanced Enhanced Enhanced Enhanced Graphics Graphics Graphics Graphics AdapterAdapterAdapterAdapter)是是是是IBMIBMIB
34、MIBM公公公公司司司司推推推推出出出出的的的的第第第第二二二二代代代代图图图图形形形形显显显显示适配器,它兼容了示适配器,它兼容了示适配器,它兼容了示适配器,它兼容了MDAMDAMDAMDA和和和和CGACGACGACGA的全部功能。的全部功能。的全部功能。的全部功能。4 4 4 4VGAVGAVGAVGA 视视视视 频频频频 图图图图 形形形形 阵阵阵阵 列列列列 显显显显 示示示示 适适适适 配配配配 器器器器 VGAVGAVGAVGA(Video Video Video Video Graphics Graphics Graphics Graphics ArrayArrayArrayA
35、rray)是是是是IBMIBMIBMIBM公公公公司司司司推推推推出出出出的的的的第第第第三三三三代代代代图图图图形形形形显显显显示示示示适配器,它兼容了适配器,它兼容了适配器,它兼容了适配器,它兼容了MDAMDAMDAMDA、CGACGACGACGA和和和和EGAEGAEGAEGA的全部功能。的全部功能。的全部功能。的全部功能。5.XGA5.XGA5.XGA5.XGA XGAXGAXGAXGA(Extended Extended Extended Extended Graphics Graphics Graphics Graphics ArrayArrayArrayArray)是是是是IBM
36、IBMIBMIBM公公公公司司司司继继继继VGAVGAVGAVGA之后推出的扩展图形显示适配器。之后推出的扩展图形显示适配器。之后推出的扩展图形显示适配器。之后推出的扩展图形显示适配器。显示模式显示模式 计算机系统中的显示器都有二种显示方式:计算机系统中的显示器都有二种显示方式:计算机系统中的显示器都有二种显示方式:计算机系统中的显示器都有二种显示方式:文文文文本显示方式本显示方式本显示方式本显示方式和和和和图形显示方式图形显示方式图形显示方式图形显示方式。在在在在DOSDOSDOSDOS操作系统环境下,其默认的显示方式为操作系统环境下,其默认的显示方式为操作系统环境下,其默认的显示方式为操作
37、系统环境下,其默认的显示方式为文本显示方式,而在文本显示方式,而在文本显示方式,而在文本显示方式,而在WindowsWindowsWindowsWindows操作系统环境下,其操作系统环境下,其操作系统环境下,其操作系统环境下,其显示方式是图形显示方式显示方式是图形显示方式显示方式是图形显示方式显示方式是图形显示方式,其绝大多数操作界面是,其绝大多数操作界面是,其绝大多数操作界面是,其绝大多数操作界面是以图形界面的窗口形式出现的。以图形界面的窗口形式出现的。以图形界面的窗口形式出现的。以图形界面的窗口形式出现的。图形显示方式图形显示方式图形显示方式图形显示方式 图形显示是目前最常用的一种显示方
38、式,也是图形显示是目前最常用的一种显示方式,也是图形显示是目前最常用的一种显示方式,也是图形显示是目前最常用的一种显示方式,也是WindowsWindowsWindowsWindows操作操作操作操作系统的默认显示方式。在该显示方式下,我们可以看到优美的系统的默认显示方式。在该显示方式下,我们可以看到优美的系统的默认显示方式。在该显示方式下,我们可以看到优美的系统的默认显示方式。在该显示方式下,我们可以看到优美的图象、图象、图象、图象、VCDVCDVCDVCD、浏览丰富多彩的网页等。、浏览丰富多彩的网页等。、浏览丰富多彩的网页等。、浏览丰富多彩的网页等。图形显示的最小单位是象素图形显示的最小单
39、位是象素图形显示的最小单位是象素图形显示的最小单位是象素,对每个象素可用不同的颜色,对每个象素可用不同的颜色,对每个象素可用不同的颜色,对每个象素可用不同的颜色来显示。所以,在显示缓冲区内记录的信息是屏幕各象素的显来显示。所以,在显示缓冲区内记录的信息是屏幕各象素的显来显示。所以,在显示缓冲区内记录的信息是屏幕各象素的显来显示。所以,在显示缓冲区内记录的信息是屏幕各象素的显示颜色。示颜色。示颜色。示颜色。由于各种图形显示模式所能显示的颜色和象素是不同的,由于各种图形显示模式所能显示的颜色和象素是不同的,由于各种图形显示模式所能显示的颜色和象素是不同的,由于各种图形显示模式所能显示的颜色和象素是
40、不同的,它决定了它决定了它决定了它决定了显示缓冲区的存储方式显示缓冲区的存储方式显示缓冲区的存储方式显示缓冲区的存储方式也是不同的。下面给出三个具也是不同的。下面给出三个具也是不同的。下面给出三个具也是不同的。下面给出三个具体的图形显示模式及其存储方式,通过它们可看出各种显示模体的图形显示模式及其存储方式,通过它们可看出各种显示模体的图形显示模式及其存储方式,通过它们可看出各种显示模体的图形显示模式及其存储方式,通过它们可看出各种显示模式在显示缓冲区存储方式上的明显差异。式在显示缓冲区存储方式上的明显差异。式在显示缓冲区存储方式上的明显差异。式在显示缓冲区存储方式上的明显差异。1616色色色色
41、640480640480图形显示模式图形显示模式图形显示模式图形显示模式 640480640480640480640480图形显示模式共有图形显示模式共有图形显示模式共有图形显示模式共有307200307200307200307200个象素,每个象素可选用个象素,每个象素可选用个象素,每个象素可选用个象素,每个象素可选用16161616种颜色,它需要用种颜色,它需要用种颜色,它需要用种颜色,它需要用4 4 4 4位二进制来表示位二进制来表示位二进制来表示位二进制来表示。该显示模式在存储显示。该显示模式在存储显示。该显示模式在存储显示。该显示模式在存储显示信息时,把该信息时,把该信息时,把该信息
42、时,把该4 4 4 4位分在四个位平面位分在四个位平面位分在四个位平面位分在四个位平面P1P1P1P1、P2P2P2P2、P3P3P3P3和和和和P4P4P4P4上,所以,位上,所以,位上,所以,位上,所以,位平面平面平面平面Pi(i=1,2,3,4)Pi(i=1,2,3,4)Pi(i=1,2,3,4)Pi(i=1,2,3,4)共有共有共有共有307200307200307200307200个二进制位,即有个二进制位,即有个二进制位,即有个二进制位,即有38400384003840038400个字节。个字节。个字节。个字节。其显示缓冲区的存储形式如图所示。其显示缓冲区的存储形式如图所示。其显示
43、缓冲区的存储形式如图所示。其显示缓冲区的存储形式如图所示。256256色色色色320200320200图形显示模式图形显示模式图形显示模式图形显示模式 表达表达表达表达256256256256种不同颜色需要种不同颜色需要种不同颜色需要种不同颜色需要8 8 8 8位二进制,即一个字节。在该模位二进制,即一个字节。在该模位二进制,即一个字节。在该模位二进制,即一个字节。在该模式下,其显示缓冲区的存储方式是非常简单的,即:第一个字式下,其显示缓冲区的存储方式是非常简单的,即:第一个字式下,其显示缓冲区的存储方式是非常简单的,即:第一个字式下,其显示缓冲区的存储方式是非常简单的,即:第一个字节存储第一
44、个象素的颜色,第二个字节存储第二个象素的颜色,节存储第一个象素的颜色,第二个字节存储第二个象素的颜色,节存储第一个象素的颜色,第二个字节存储第二个象素的颜色,节存储第一个象素的颜色,第二个字节存储第二个象素的颜色,以此类推,所以,存储满屏象素所需要的字节数为:以此类推,所以,存储满屏象素所需要的字节数为:以此类推,所以,存储满屏象素所需要的字节数为:以此类推,所以,存储满屏象素所需要的字节数为:320200132020013202001320200164000640006400064000。其显示缓冲区的存储方式如图所示。其显示缓冲区的存储方式如图所示。其显示缓冲区的存储方式如图所示。其显示缓
45、冲区的存储方式如图所示。从上面三种不同图形显示模式的介绍,不难从上面三种不同图形显示模式的介绍,不难看出:各种显示模式在显示缓冲区存储方式上的明看出:各种显示模式在显示缓冲区存储方式上的明显差异,操作象素方法的难易程度相差也很大,所显差异,操作象素方法的难易程度相差也很大,所以,以,程序员不要用直接操作显示缓冲区的办法来达程序员不要用直接操作显示缓冲区的办法来达到改变显示象素的目的,最好是通过到改变显示象素的目的,最好是通过BIOSBIOS内的中断内的中断功能来实现相应的功能功能来实现相应的功能,这样,所编写的程序能很这样,所编写的程序能很方便地适应不同的图形显示模式。方便地适应不同的图形显示
46、模式。9.2.1 9.2.1 字符属性字符属性字符属性字符属性 显示器的屏幕通常划分为行和列的二维系统,显示适配器就显示器的屏幕通常划分为行和列的二维系统,显示适配器就在行列组成的网格位置上显示字符。对应屏幕上的每个字符位在行列组成的网格位置上显示字符。对应屏幕上的每个字符位置,主存空间都有相应的存储单元与之对应,因此可说是显示置,主存空间都有相应的存储单元与之对应,因此可说是显示屏幕式屏幕式“存储器的映像存储器的映像”。对应显示屏幕上的每个字符,在存。对应显示屏幕上的每个字符,在存储器中由连续的两个字节表示,储器中由连续的两个字节表示,一个字节表示一个字节表示ASCIIASCII码,另一个码
47、,另一个字节保存字符的属性。字节保存字符的属性。属性值()属性值()属性值()属性值()属性值()属性值()属性值()属性值()显示效果显示效果显示效果显示效果0000无显示无显示无显示无显示0101黑底白字,下划线黑底白字,下划线黑底白字,下划线黑底白字,下划线0707黑底白字,正常显示黑底白字,正常显示黑底白字,正常显示黑底白字,正常显示0F0F黑底白字,高亮度黑底白字,高亮度黑底白字,高亮度黑底白字,高亮度7070白底黑字,反相显示白底黑字,反相显示白底黑字,反相显示白底黑字,反相显示8787黑底白字,闪烁黑底白字,闪烁黑底白字,闪烁黑底白字,闪烁F0F0白底黑字,反相闪烁白底黑字,反相
48、闪烁白底黑字,反相闪烁白底黑字,反相闪烁单色显示的属性值单色显示的属性值 7 6 5 4 3 2 1 07 6 5 4 3 2 1 0背景背景背景背景前景前景前景前景闪烁闪烁闪烁闪烁亮度亮度亮度亮度1 1 1 1、单色字符属性、单色字符属性、单色字符属性、单色字符属性2 2、彩色字符显示、彩色字符显示、彩色字符显示、彩色字符显示位号位号位号位号7 76 5 46 5 43 2 1 03 2 1 0属性属性属性属性字节字节字节字节BLBLR G BR G BI R G BI R G B闪烁选择闪烁选择闪烁选择闪烁选择背景颜色背景颜色背景颜色背景颜色前景颜色前景颜色前景颜色前景颜色彩色字符显示属性
49、字节彩色字符显示属性字节110 棕RGB颜色000 黑001001蓝010010绿011青100100红101品红111白IRGB颜色IRGB颜色0000黑1000灰0001蓝1001浅蓝0010绿1010浅绿0011青1011浅青0100红1100浅红0101品红1101浅品红0110棕1110黄0111白1111强度白背景颜色组合背景颜色组合背景颜色组合背景颜色组合前景颜色组合前景颜色组合前景颜色组合前景颜色组合3.显示存储器显示存储器 对于所有的显示适配器,文本方式下显示字符的原理是一对于所有的显示适配器,文本方式下显示字符的原理是一对于所有的显示适配器,文本方式下显示字符的原理是一对于
50、所有的显示适配器,文本方式下显示字符的原理是一样的,所不同的是显存的起始地址不同,样的,所不同的是显存的起始地址不同,样的,所不同的是显存的起始地址不同,样的,所不同的是显存的起始地址不同,对于对于对于对于MDAMDAMDAMDA,显存的起,显存的起,显存的起,显存的起始地址为始地址为始地址为始地址为B000:0000B000:0000B000:0000B000:0000;对于;对于;对于;对于CGACGACGACGA、EGAEGAEGAEGA、VGAVGAVGAVGA是是是是B800:0000B800:0000B800:0000B800:0000.每个字每个字每个字每个字符的符的符的符的AS