?? page149.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="page148.html">上一頁</a> <a href="page150.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>-149-</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=18><font face="楷體_GB2312">
一個32位的數據,其高16位由DX寄存器保存,低16位由AX寄存器保存。因此使用MUL指令之前應注意保存AH與DX寄存器中的有用數據;<br>
</font>
與乘法指令相對的是除法指令:
</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>
助記符:DIV(Divide)<br>
用 途:將兩個數相除<br>
格 式:DIV 寄存器<br>
DIV 存儲單元<br>
執 行:兩個數相除,得出商與余數。
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
除法指令與乘法指令一樣有一些特殊的規定:<br>
<font face="楷體_GB2312">
① 被除數只能是16位或32位數據,除數只能是8位或16位數據,且16位的被除數只能由8位的數除,而32位的被除數只能由16位的數除。這好象有些不講理,但是Intel就是這樣規定的。<br>
② 32位的被除數要預先放入DX:AX寄存器中,DX寄存器保存高16位;16位的被除數要預先放入AX寄存器中。32位數除以16數據所得的商由AX寄存器保存,余數由DX寄存器保存;16位數據除以8位數據所得的商由AL寄存器保存,余數由AH寄存器保存。<br>
③ 與MUL指令一樣,DIV指令同樣認為相除的兩個數都是無符號數,它也不能處理負數。<br>
④ 除數不能是0。<br>
</font>
這第四項似乎是一句廢話,其實不然。這一項將引出一個很重要的知識點,這個知識點將在后面的章節中加以介紹。<br>
下面給出了兩個試驗程序,用于研究乘除法指令的執行過程:
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
試驗<1><br>
C:\ASM\>DEBUG[Enter]<br>
-a100[Enter]<br>
13C6:0100 mov al,3<br>
13C6:0102 mov ah,4<br>
13C6:0104 mul ah<br>
13C6:0106 mov bx,-1<br>
13C6:0109 mul bx<br>
13C6:010B [Enter]<br><br>
</td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>-g=100 104[Enter] <font face="楷體_GB2312" size=2>注意被乘數、乘數均在AX寄存器中</font></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=2>AX=0403</td><td colspan=2>BX=0000</td><td colspan=2>CX=0000</td><td colspan=2>DX=0000</td><td colspan=2>SP=FFEE</td><td colspan=2>BP=0000</td><td colspan=2>SI=0000</td><td colspan=2>DI=0000</td><td colspan=2></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=2>DS=13C6</td><td colspan=2>ES=13C6</td><td colspan=2>SS=13C6</td><td colspan=2>CS=13C6</td><td colspan=2>IP=0104</td>
<td colspan=5>NV UP EI PL NZ NA PO NC</td><td colspan=3></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=2>13C6:0104</td><td colspan=2>F6E4</td><td colspan=6>MUL AH</td><td colspan=4></td>
<td></td><td></td> <!右邊距>
</tr>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
為了計算3x4的值,我們需首先將3放人AL寄存器中,將4放入另一8Bit寄存器中,然后用指令"MUL 寄存器"計算出結果。這個程序特意用AH寄存器保存乘數,主要是想說明運算結果將是一個出現在AX寄存器里的16位的數據。注意我們沒給出"MUL 立即數"的用法,這樣使用是錯誤的。
</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="page148.html">上一頁</a> <a href="page150.html">下一頁</a> <a href="page168.html">下一章</a></p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -