📄 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 + -