⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page283.html

📁 编者李春生
💻 HTML
字号:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>第10章 细节补充</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="page282.html">上一页</a> <a href="page284.html">下一页</a> <a href="page291.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">第10章 细节补充</td> <!章节名>
<td></td><td>-283-</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 align="center"><img src="icons/note.gif"></td>
<td colspan=15>
助记符:IMUL(Signed Multiple)<br>
用 途:计算两个带符号数相乘的结果<br>
格 式:IMUL 寄存器<br>
    IMUL 存储单元<br>
执 行:累加器与操作数相乘,16位的结果保存于AX寄存器中,32位结果保<br>
    存于DX-AX中。
</td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
  带符号数的除法指令是"IDIV",这两个指令除了能处理符号之外其它方面与MUL/DIV相同,在此不再过多讨论。<br>
  (3)逻辑操作指令<br>
  基本的逻辑操作有四种,与(AND)、或(OR)、异或(XOR)和非(NOT)。前三种逻辑操作在前面的章节里已经学习过了,本章讨论的"非"操作可以说是四种逻辑操作中最简单的一种:
</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>
助记符:NOT(Not)<br>
用 途:将操作数的各个位取反<br>
格 式:NOT 寄存器<br>
    NOT 存储单元<br>
执 行:指定的寄存器或存储单元中为1的位均变为0,为0的位均变为1
</td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
  (4)移位指令<br>
  移位指令我们已经学习了4个,逻辑左右移位(SHL/SHR)与循环左右移位(ROL/ROR)。8086/88还有两组移位指令--算术左右移位和带进位标志的循环左右移位:
</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>
助记符:SAL/SAR(Shift Arithmetic Left/Shift Arithmetic Right)<br>
用 途:完成向左/向右的算术移位<br>
格 式:SAL/SAR  寄存器,1<br>
    SAL/SAR  寄存器,CL<br>
    SAL/SAR  存储单元,1<br>
    SAL/SAR  存储单元,CL<br>
执 行:SAL执行结果与SHL相同,操作数向左移动指定位数,移出的数位进<br>
    入CF标志,同时0由操作数右侧移入;SAR执行时操作数向右移动指<br>
    定位数,移出的数位也进入CF标志,同时最高位(符号位)逐渐向<br>
    右扩展。
</td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
  SAR指令主要用于除法运算,每向右移一位就相当于除以2。当然,逻辑右移指令SHL也能当作除法,不过SHL只适用于无符号数除以2,因为从左侧移入的0会使结果总为正数。而SAR指令就能同时适用于带符号数与无符号数的除2运算,因为此指令执行时从操作数左侧移入的不一定是0,而是与操作数的符号一致。<br>
  如果将80H向右移一位,采用逻辑移位指令SHR可以得到结果40H,这相当于将128除以2。而采用算术移位指令SAR就能得到结果0C0H,这才是-128除以2的结果。若把0C0H再除以2,则应用SAR指令可以得到结果0E0H,可以看出符号位是逐渐向右扩展的。<br>
  SAL指令与SHL指令的操作完全一致,这是因为左移操作是不可能保持符号位不变的。这也提醒我们负数是不能用左移位的方式完成乘2运算的。<br>
  指令RCL/RCR与指令ROL/ROR一样用于完成循环移位,不过有一点不同,RCL/RCR可以完成
</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 &copy; 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="page282.html">上一页</a> <a href="page284.html">下一页</a> <a href="page291.html">下一章</a></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -