📄 page121.html
字号:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>第6章 文字输出与键盘输入</title>
</head>
<body>
<style type="text/css">
body {
background-color: #c0c0c0;
}
table {
background-color: #c0c0c0;
line-height: 24px;
}
</style>
<!导航条>
<p><a href="content1.html">目录</a> <a href="page120.html">上一页</a> <a href="page122.html">下一页</a> <a href="page168.html">下一章</a></p>
<table border=0 align="center" width=800 frame="box" rules="none">
<!标尺行>
<tr>
<td width=3%></td><td width=6%></td><td width=1%></td> <!左侧空白>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=1%></td><td width=6%></td><td width=3%></td> <!右侧空白>
</tr>
<!页眉行>
<tr height=60 valign="bottom">
<td></td><td></td><td></td>
<td colspan=6><img src="icons/flag.gif"></td><td colspan=4></td><td colspan=6 align="right">第6章 文字输出与键盘输入</td> <!章节名>
<td></td><td>-121-</td><td></td> <!页码>
</tr>
<!页眉线>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!正文>
<font face="宋体" lang="ZH-CN" size=3>
<tr height=20><td colspan=22></td></tr> <!顶部空白>
<tr>
<td></td><td></td> <!左边距>
<td colspan=3></td>
<td colspan=15>
BL=字符的属性字节<br>
CX=显示字符的个数<br>
调 用:INT 10H<br>
返 回:无
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
此功能并不难理解,但有一点需要解释--什么是显示页号?<br>
这个问题同显示卡上的RAM有关。不同的显示卡所带的RAM量是不同的,MDA卡有4KB RAM,CGA卡有16KB RAM,标准EGA和VGA有256KB RAM。程序要显示一个字符,必须送两个字节数据到显示RAM中,第一个字节是字符的ASCII码,第二个字节就是属性字节。<br>
如果当前屏幕上最多可以显示80列×25行即2000个字符,那么显示卡就必须具有4KB的RAM才可以放下2000个字符的数据。MDA卡上的4KB RAM就是由此而来,而且由于这4KB存储器仅够存储一个屏幕的字符,所以MDA卡没有分显示页的问题。<br>
而CGA卡则不同,它有16KB存储器,按刚才讨论的标准它的RAM可以装下4个屏幕的字符数据,所以我们将CGA的存储器分成4个区,每一个区就称为一个显示页。程序可以向不同的显示页中写入字符及属性,不过只有写入当前正被显示卡电路处理的那个显示页的字符才能出现在屏幕上,这个显示页就称为"当前显示页"。<br>
系统启动时默认当前显示页为第0页,即系统默认使用显示RAM最前面的4KB,当然我们可以通过程序改变当前显示页,这将在后面讨论。<br>
下面这个程序演示了属性字节的应用,运行这个程序可以观察到不同RGB组合成的色彩,也可以看到属性字节中I位和F位的作用。
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=2>
data<br>
<br>
attrib<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
data<br>
code<br>
<br>
main<br>
<br>
<br>
<br>
<br>
</td>
<td colspan=2>
segment<br>
assume<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
db<br>
ends<br>
segment<br>
assume<br>
proc<br>
mov<br>
mov<br>
mov<br>
mov
</td>
<td colspan=6>
<br>
ds:data<br>
00000001b<br>
00000010b<br>
00001010b<br>
00000011b<br>
00100110b<br>
01010011b<br>
01011011b<br>
10000011b<br>
10001011b<br>
11010011b<br>
11011010b<br>
<br>
<br>
cs:code<br>
far<br>
ax,data<br>
ds,ax<br>
al,41h<br>
ah,09h
</td>
<td colspan=8>
<br>
<br>
;属性字节表<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
;初始化DS寄存器指向数据段<br>
<br>
;准备显示大写字母A<br>
;10H中断的09H功能
</td>
<td></td><td></td> <!右边距>
</tr>
</font>
<!页脚线>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!页脚>
<tr height=60 valign="top">
<td></td><td></td>
<td colspan=9><i>Copyright © 2004-2005 <a href="mailto:webmaster@nucstorm.com">Chunk Lee</a></i></td>
<td colspan=9 align="right"><i><a href="http://www.nucstorm.com" target="_top">www.nucstorm.com</a></i></td>
<td></td><td></td>
</tr>
</table>
<!导航条>
<p align="right"><a href="content1.html">目录</a> <a href="page120.html">上一页</a> <a href="page122.html">下一页</a> <a href="page168.html">下一章</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -