?? page135.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>
<!導(dǎo)航條>
<p><a href="content1.html">目錄</a> <a href="page134.html">上一頁</a> <a href="page136.html">下一頁</a> <a href="page168.html">下一章</a></p>
<table border=0 align="center" width=800 frame="box" rules="none">
<!標(biāo)尺行>
<tr>
<td width=3%></td><td width=6%></td><td width=1%></td> <!左側(cè)空白>
<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> <!右側(cè)空白>
</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> <!章節(jié)名>
<td></td><td>-135-</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=2>
<br>
<br>
<br>
<br>
main<br>
code<br>
<br>
</td>
<td colspan=2>
dec<br>
jns<br>
<br>
int<br>
endp<br>
ends<br>
end
</td>
<td colspan=6>
bl<br>
loop1<br>
<br>
20h<br>
<br>
<br>
main
</td>
<td colspan=8>
;循環(huán)計(jì)數(shù)減1<br>
;循環(huán)至LOOP1繼續(xù)<br>
<br>
;結(jié)束進(jìn)程<br>
<br>
<br>
<br>
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
在這個程序中“等待鍵盤輸入”的位置做了些調(diào)整,運(yùn)行這個程序時可以清楚的看到屏幕自上而下滾動4、3、2、1行的情況,以及AL寄存器清零后整屏被清除。如果要驗(yàn)證清窗口的功能,只需稍稍修改一下窗口的左上與右下角坐標(biāo)即可。其實(shí)原來提出的在屏幕上顯示空格的方法也能完成諸如清"窗口",改變新行屬性等功能,只是編程不如新討論的兩個功能簡便而已。<br>
實(shí)際上剛剛討論過的這些清屏方法都有些繁瑣,下面介紹的這個方法就可以說十分簡單快捷了。在前面討論顯示模式的時候曾經(jīng)提到過一般的顯示卡能支持多種顯示模式,程序需要使用何種顯示模式是可以選擇的。這里需要再補(bǔ)充一點(diǎn),那就是當(dāng)程序設(shè)定一種新的顯示模式后,BIOS中斷服務(wù)程序會自動的清除整個屏幕,這樣看來重置顯示模式也是一種清屏方法。設(shè)置顯示模式可以使用10H中斷的0號功能:
</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>
功能號:00H<br>
用 途:設(shè)置顯示模式<br>
參 數(shù):AL = 顯示模式號<br>
調(diào) 用:INT 10H<br>
返 回:無
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
當(dāng)系統(tǒng)啟動之后,DOS默認(rèn)的顯示模式是模式3,也就是80列25行的字符模式。所以如果編程重新選擇顯示模式3,那么就會有"清屏"的效果而且DOS的顯示模式?jīng)]有改變。下面給出了一個試驗(yàn)程序:
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=6>
C:\ASM\>DEBUG [Enter]<br>
-a100[Enter]<br>
09DF:0100 mov ax,0003<br>
09DF:0103 int 10<br>
09DF:0105 ret<br>
09DF:0106[Enter]
</td>
<td colspan=12>
<br>
<br>
;利用10H中斷的0號功能<br>
;將屏幕設(shè)置為03模式<br>
<br>
<br>
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
鍵入"G=100"馬上就會看到屏幕被清除的干干靜靜,短短兩條指令就有立竿見影的效果。不過可不要高興的太早,有一個很重要的問題被忽略了,這個問題并不隱蔽,那就是給出的試驗(yàn)程序?qū)?quot;當(dāng)前"的顯示模式作了假定。<br>
的確,DOS確實(shí)工作在模式3下,但這并不意味著其他的程序都使用顯示模式3,很明顯如果我們編制一個圖形程序那么使用上面這一小段程序清屏就會亂套。這提醒我們在設(shè)置顯示模式之前應(yīng)該查出當(dāng)前的顯示模式,而后將當(dāng)前顯示模式作為新的顯示模式進(jìn)行設(shè)置,這樣才可以保證清屏后顯示模式不變。好在10H中斷提供了一個功能調(diào)用專用于查出當(dāng)前顯示模式:
</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>
<!導(dǎo)航條>
<p align="right"><a href="content1.html">目錄</a> <a href="page134.html">上一頁</a> <a href="page136.html">下一頁</a> <a href="page168.html">下一章</a></p>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -