首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

显示缓冲区

显示缓冲区

2、显示缓冲区
显示缓冲区是用来记录屏幕显示信息的。在文本显示方式下,这些显示信息包括:每个显示字符的ASCII码及其显示属性,如图8.7所示。在图形显示方式下,显示缓冲区内存储每个象素的显示颜色。
在图8.7中,我们并没有给出具体的段地址,只用\"XXXX\"来表示其段地址。在常用的VGA显示方式下,计算机系统规定:
文本显示方式下,单色显示器的显示缓冲区段地址为0B000H;
文本显示方式下,彩色显示器显示缓冲区段地址为0B800H;
图形显示方式下,其显示缓冲区段地址为0A000H。
3、DOS功能中的屏幕输出
屏幕输出是最常用的一种输出形式,DOS操作系统提供了几种实现屏幕输出的功能调用。INT 21H中的相关功能如下:
02H——显示的字符
06H——控制台的输入/输出:当DL≠0FFH,表示显示字符
09H——在屏幕上显示一个字符串
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之字符功能调用类。
4、BIOS中的屏幕操作功能
BIOS系统提供了中断10H来实现各种屏幕处理功能。其具体的功能如下:
00H——设置显示器模式01H——设置光标形状
02H——设置光标位置03H——读取光标信息
05H——设置显示页06H、07H——初始化或滚屏(向上滚屏和向下滚屏)
08H——读光标处的字符及其属性09H——在当前光标处按指定属性显示字符
0AH——在当前光标处显示字符0CH——写图形象素
0DH——读图形象素0EH——在Teletype模式下显示字符
0FH——读取显示器模式10H——颜色
13H——在Teletype模式下显示字符串
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之显示服务。
5、屏幕输出的举例
例8.2用直接写屏方式在屏幕第5行、第10列以**(0EH)显示字符串\"Hello\"。
解:在文本显示方式下,每行显示80个字符,每个字符占2个字节,所以,显示一行需要160个字节。若在第M行、第N列位置显示字符,则该位置所对应存储单元的偏移量为:M×160 + N×2。
.MODEL SMALL
.DATA
YellowEQU0EH
MSG1DB\"Welcome...\"
CountEQU$-MSG1
.CODE
.STARTUP
MOVAX, 0B800H
MOVES, AX;彩色显示器的显示缓冲区段地址
MOVDI, 5
IMULDI, 160;5行所跳过的显示存储单元
MOVCX, 10
SHLCX, 1;10列所跳过的显示存储单元
ADDDI, CX;第5行、第10列之前所跳过的所有显示单元
MOVCX, Count
LEASI, MSG1;CX:字符个数,SI:显示字符首地址
MOVAH, Yellow;设置显示属性,即显示颜色
.REPEAT
LODSB;取显示字符
STOSW;向显示缓冲区设置显示字符和属性
.UNTILCXZ
.EXIT0
END
返回列表