?? page49.html
字號:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>第4章 奇妙的聲音</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="page48.html">上一頁</a> <a href="page50.html">下一頁</a> <a href="page80.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> <!左側(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">第4章 奇妙的聲音</td> <!章節(jié)名>
<td></td><td>-49-</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><hr></td>
<td colspan=4 align="center"><font size=5>CODE ENDS</td>
<td colspan=11><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><font face="楷體_GB2312">
ENDS偽操作和SEGMENT是相配合的,表示一個段結束。需要注意的是段的名字表示了這個段的起始段地址,它和段的性質(zhì)并無關系,所以并不是名為"CODE"的段就一定是代碼段。
</font></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
對于PROG7來說,由于程序只需要一個代碼段就可以了,所以只定義了一個"CODE"段,后面我們會談到定義多個段的方法。
</td>
<td></td><td></td><!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=3><hr></td>
<td colspan=4 align="center"><font size=5>ORG</td>
<td colspan=11><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><font face="楷體_GB2312">
偽指令"ORG"的主要作用就是控制偏移量。它不僅可以用于代碼段中,也可用于其它段。而且這個偽指令不僅單用于程序省首部,在程序之中也可以插入使用。
</font></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
PROG7只有一個代碼段,因此它可以編譯成.COM類的可執(zhí)行文件。注意.COM類的程序都要從偏移0100H處開始執(zhí)行,所以在源程序中也要明確指出程序第一條指令的偏移為0100H,這就是指令"ORG"的作用。<br>
程序中的第三行和倒數(shù)第三行是"過程定義"偽操作。講到這兒我們需要先明確幾個概念:大家知道,一個程序往往由一個主程序和若干子程序組成,在匯編語言中,我們稱其為"主過程"和"子過程"。而把由"主過程"和"子過程"共同組成的完整的程序稱為"進程"。因此在編寫一個"進程"時就需要用"過程定義"偽操作將不同的"過程"區(qū)分開,這就要用到"PROC"偽指令。
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=3><hr></td>
<td colspan=4 align="center"><font size=5>PROC - ENDP</td>
<td colspan=11><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><font face="楷體_GB2312">
"PROC"偽指令的應用格式很簡單,"過程名 PROC 屬性"。其中過程名表示了這一過程的起始地址,它和這一過程是"主"還是"子"沒有任何聯(lián)系。名字不決定屬性,這個特點同"SEGMENT"一樣;屬性指的是這一過程是"近程"(NEAR)還是"遠程"(FAR),它將決定調(diào)用此過程的CALL指令和過程最后的RET指令的編譯結果。<br>
結束一個過程在形式上和結束一個段相似,只是END后面加了表示過程(PROCEDURE)的字母"P"而不是表示段(SEGMENT)的"S":"過程名 ENDP"。
</font></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
在"PROC"與"ENDP"之間的就是真正的代碼,最后一行的"END"偽指令用于表示"進程結束",即整個源程序編制完畢。
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=3><hr></td>
<td colspan=4 align="center"><font size=5>END</td>
<td colspan=11><hr></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><font face="楷體_GB2312">
偽指令"END"的用法很簡單:"END 過程名"。跟在它后面的"過程名"指出了整個程序的入口,也就是程序中"主過程",這個過程是DOS調(diào)入程序后首先要執(zhí)行的。當然,這個過程名在某些情況下可以省略,比如在編寫"COM"類程序的時候。
</font></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18><hr></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="page48.html">上一頁</a> <a href="page50.html">下一頁</a> <a href="page80.html">下一章</a></p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -