📄 page133.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="page132.html">上一页</a> <a href="page134.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>-133-</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>
09F9:0100<br>
09F9:0103<br>
09F9:0105<br>
09F9:0107<br>
09F9:0109<br>
09F9:010C<br>
09F9:010E<br>
09F9:0110<br>
09F9:0112<br>
09F9:0114<br>
09F9:0116<br>
09F9:0119<br>
09F9:011B
</td>
<td colspan=2>
BA0000<br>
B700<br>
B402<br>
CD10<br>
B98000<br>
B020<br>
B307<br>
B409<br>
CD10<br>
FEC6<br>
80FE19<br>
72E8<br>
CD20
</td>
<td colspan=1>
MOV<br>
MOV<br>
MOV<br>
INT<br>
MOV<br>
MOV<br>
MOV<br>
MOV<br>
INT<br>
INC<br>
CMP<br>
JB<br>
INT
</td>
<td colspan=2>
DX,0000<br>
BH,00<br>
AH,02<br>
10<br>
CX,0080<br>
AL,20<br>
BL,07<br>
AH,09<br>
10<br>
DH<br>
DH,19<br>
0103<br>
20
</td>
<td colspan=10>
;设置新的光标位置<br>
;BH寄存器装入显示页号<br>
;利用10H中断的02功能<br>
;设置光标位置<br>
;显示80个字符<br>
;准备显示空格<br>
;显示黑底白字正常属性<br>
;利用10H中断的09功能<br>
;显示空格<br>
;光标行号加1<br>
;已经到屏幕底部了吗?<br>
;未到屏幕底部,转0103继续<br>
;结束程序
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
好象问题就这么简单,难道只有这一种方法吗?下面我们就要来学习新的解决办法。<br>
大家对于屏幕的"滚动"并不陌生,我们所面对的屏幕只能显示25行文字,如果显示的文字多于25行,那么位于屏幕最顶端的字符就会滚到屏幕外面。其实屏幕的上下滚动是完全可以用程序控制的,而且我们不仅可以控制整个屏幕的滚动,还能让屏幕上某一部分的内容上下滚动。方法也很简单,只不过是10H中断的两个功能调用而已:
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=3 align="center"><img src="icons/note.gif"></td>
<td colspan=15>
功能号:06H/07H<br>
用 途:窗口内容向上/向下滚动<br>
参 数:AL=要滚动的行数(若是0将清窗口)<br>
BH=填入新行的属性<br>
CH=滚动窗口的左上角行号<br>
CL=滚动窗口的左上角列号<br>
DH=滚动窗口的右下角行号<br>
DL=滚动窗口的右下角列号<br>
调 用:INT 10H<br>
返 回:无
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
两个功能调用滚动的方向相反,如果我们从给出的这两个功能调用的参数上加以分析,我们可以大概推测出这两个功能调用所能完成的工作:<br>
<font face="楷体_GB2312">
(1)用这两个功能调用既可以滚动屏幕上的一个窗口,也可以滚动整个屏幕,只需将窗口的左上角定为(0,0),将右下角定为(79,25);<br>
(2)滚动的行数可以任意(由AL寄存器决定);<br>
(3)在清除后的屏幕上显示文字会产生色彩,而不仅仅是单纯的黑色(由BH寄存器决定)。<br>
</font>
这只是简单的设想,能否实现还要靠编程验证。让我们编写下列程序:
</td>
<td></td><td></td> <!右边距>
</tr>
<tr>
<td></td><td></td> <!左边距>
<td colspan=2>
code<br>
<br>
<br>
</td>
<td colspan=2>
segment<br>
assume<br>
org
</td>
<td colspan=6>
<br>
cs:code,ds:code<br>
100h
</td>
<td colspan=8>
</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="page132.html">上一页</a> <a href="page134.html">下一页</a> <a href="page168.html">下一章</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -