一、概念
1.显示器适配器:用于计算机和显示器连接的接口电路板,也称为显示卡。在IBM PC中有单色显示及并行打印机适配器,彩色图形监视器适配器两种。
2.象素:80列25行共2000个网格的位置为象素。每个象素可显示一个字符,且在存储器中都有一个字映像。屏幕行号为0~24(0~18H),列号为0~79(0~4FH)。
3.属性:对应显示屏上的每个字符在存储器中由连续的两个字节表示,一个低字节表示字符的ASCII码,另一个高字节保存字符的属性。
4.文本方式:在屏幕上处理字母、数字以及一些字符图形称为文本方式。
二、字符属性
单色字符显示:单色显示属性字节如上图:
彩色字符显示:彩色显示属性字节如下图。
显示存储器:屏幕上某一字符位置在显示存储器(又称为显存)中的偏移地址可由下列公式算出:
Char_offset=Page_offset+((row×width)+column)×byte
其中Page_offset是页偏移地址,width是每行可显示的字符数,在25×80的字符显示方式下,width=80,byte是表示一个字符所用的字节数,在字符显示方式下byte=2,row和column是相对于屏幕左上角位置(0,0)的行列坐标。
BIOS显示中断:INT 10H的0~0FH及13H共17个功能。部分见书第328页的表9.8所示。
控制光标:光标不是ASCII字符,它由硬件产生和控制。
AH=1:控制光标行的开始(CH的低4位)和结束(CL的低4位) (即大小),显示光标(CH4=0)和关闭(CH4=1)。
AH=2:设置光标位置。DH=行号,DL=列号,BH=页号。对单显BH=0。
读光标位置:AH=3,读光标位置。BH=页号。出口信息为DH=行号,DL=列号;CH和CL中的低4位为光标大小。
选择显示页:AH=5,AL=页号。可由程序确定显存中的显示区域。
清屏和卷屏
AH=6:使屏幕内容或窗口内容上卷指定的行。该功能需设置7个入口参数,AL=0时清屏或清窗口。
AH=7:使屏幕内容或窗口内容下卷指定的行。该功能需设置7个入口参数,AL=0时清屏或清窗口。
字符显示
AH=9:在光标位置显示字符及属性。BH=页,AL=字符,BL=属性,CX=字符重复次数。光标回到原位置。
AH=0AH:在光标位置只显示字符。BH=页,AL=字符,CX=字符重复次数。光标回到原位置。
AH=8:读光标位置的字符及属性。BH=页。返回时AL=字符,AH=属性。
彩色和字符串显示在编写字符显示程序时,彩色显示和单色显示类似。注意设置属性值。
AH=13H功能显示字符串有4种方式,前两种方式(AL=0,1)要指定整个显示字符串的属性,后两种方式(AL=2,3)要指定每个字符的属性。
DOS显示功能调用(INT 21H的部分功能)
显示单字符
AH=2:显示一个字符并检验Ctrl_Break。DL=(显示)字符,光标跟随字符移动。
AH=6:直接控制台I/O,不检验Ctrl_Break。
DL=0FFH:为输入字符,AL=输入字符;
DL=字符:为输出并显示一个字符,光标跟随字符移动。
AH=9:显示字符串。DS:DX=字符串的首地址,字符串必须以“$”为结束符,光标跟随字符串移动。在“$”前可加回车(0DH)换行(0AH)符。
三、显示页
页号 单色 彩色
1 B000:0000 B800:0000
2 :1000 :1000
3 :2000 :2000
4 :3000 :3000
5 :4000 :4000
6 :5000 :5000
7 :6000 :6000
8 :7000 :7000
四、文本显示属性
文本color及属性代码
颜色 代码 |
颜色 代码 |
黑 0000 |
灰 1000 |
典型的BW文本属性
00H
01H 黑底白字,下划线,规定
07H 黑底白字,正常
0FH 黑底白字,高亮
70H 白底黑字,反相
87H 黑底白字,闪烁
F0H 白底黑字,反相闪烁
显示有属性的单个字符利用INT 10h的9号功能
显示有属性的字符串利用INT 10h的13号功能
五、DOS显示功能调用(INT 21h)
1、显示单个字符,光标移动
mov ah,2
mov dl,‘字符’
int 21h
2、显示字符串
mov ah,9
lea dx,串首地址
int 21h ;光标到串尾
六、BIOS显示功能调用
(1)光标处显示单个属性字符,光标不移动
mov ah,9
mov al,‘字符’
mov bl,属性
mov cx,个数
mov bh,页号
int 10h
(2)光标处显示单个正常字符,光标不移动
mov ah,10
mov al,‘字符’
mov cx,个数
mov bh,页号
int 10h
(3)模拟TTy显示输出
mov ah,0eh
mov al,显示代码
int 10h