表9.9
属性字节的典型组合
位
显示颜色 |
7
BL
|
6
R
|
5
G
|
4
B
|
3
I
|
2
R
|
1
G
|
0
B
|
16进制
|
黑底黑字
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
00h
|
黑底兰字
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
01h
|
兰底红字
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
14h
|
绿底青字
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
1
|
23h
|
灰白底浅品红字
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
7Dh
|
绿底灰字闪烁
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
A8h
|
例9.16
在品红背景下,显示5个浅绿色闪烁的星号。
MOV AH,09 ;显示字符和属性功能
MOV AL,'*' ;显示字符
MOV BH,0 ;0页
MOV BL,0DAH ;彩色属性
MOV CX,05 ;字符显示次数
INT 10H ;BIOS调用
使用INT 10H的13H功能显示字符串有4种方式,前两种方式(AL=0,1)要指定整个显示字符串的属性,后两种方式(AL=2,3)必须指定每个字符的属性,我们通过下面两个例子来了解它的用法。
例9.17
在屏幕上以红底篮字显示字符串:"WORLD SCENERY"。
STRING DB 'WORLD SCENERY'
LEN_STR EQU $_STRING
┇
MOV AL,3 ;80 ′25 彩色文本方式
MOV AH,0 ;设置显示方式
INT 10H
MOV BP,SEG STRING ;字符串段地址
MOV ES,BP
MOV BP,OFFSET STRING ;字符串偏移地址
MOV CX,LEN-STR ;字符数
MOV DX,0 ;起始行列
MOV BL,41H ;红底蓝字use blue-on-red lettering
MOV AL,0 ;光标返回起始地址
MOV AH,13H ;显示字符串
INT 10H ;BIOS调用
例9.18
在屏幕上以红底蓝字显示"WORLD",然后分别以红底绿字和红底蓝字相间地显示"SCENERY"。
STRING1 BD 'WORLD'
STRING2 DB 'S',42H.,'C',41H,'E',42H,'N',41H
DB 'E',42H,'R',41H,'Y',42H
LEN_STR2 EQU $_STRING2
┇
MOV AL,3 ;80 ′25 彩色文本方式
MOV AH,0 ;设置显示方式
INT 10H
MOV BP,SEG STRING 1 ;串1段地址
MOV ES,BP
MOV BP,OFFSET STRING ;串1偏移地址
MOV CX,STRING2_STRING1 ;字符数
MOV DX,0 ;起始行列
MOV BL,41H ;红底蓝字
MOV AL,1 ;光标跟随移动
MOV AH,13H ;显示串功能display the string
INT 10H ;BIOS调用
MOV AH,3 ;读光标位置
INT 10H ;BIOS调用
MOV BP,OFFSET STRING ;串2偏移地址
MOV CX,LEN_STR2 ;字符数
MOV AL,3 ;显示字符和属性
MOV AH,13H ;显示串2
INT 10H ;BIOS调用
|
|