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

📄 page66.html

📁 李春生的汇编书籍
💻 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="page65.html">上一页</a> <a href="page67.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>
<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>-66-</td><td></td> <!页码>
<td colspan=6>PC机汇编语言实战精解</td><td colspan=4></td><td colspan=6 align="right"><img src="icons/flag.gif"></td> <!书名>
<td></td><td></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></td>
<td colspan=2>
<br>
<br>
<br>
main<br>
code<br>
<br>
</td>
<td colspan=2>
mov<br>
int<br>
int<br>
endp<br>
ends<br>
end
</td>
<td colspan=4>
dl,byte ptr crlf+1<br>
21h<br>
20h<br>
<br>
<br>
main
</td>
<td colspan=8></td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
  指令"MOV DL,BYTE PTR CRLF"明确地告诉编译系统程序要从地址"CRLF"处取得一个"BYTE"。<br>
  举这个例子只是为说明"PTR"操作符的用途,并非显示什么算法。说实在的,对于上面这个问题来讲最简单的方法就是将"CRLF  DW  0D0AH"改为:"CR  EQU  0DH"和"LF  EQU  0AH"。这样可以缩减程序的长度,而且也不必使用"PTR"操作符。<br>
  理解了"PTR"操作符,我们就可以更深入的讨论一下ADD和SUB这两条指令,请考虑一下这样两条指令是否正确:"ADD BL,WORD PTR [0200]"、"SUB AX,BYTE PTR [3000]"。<br>
  先设想一个结论,再用DEBUG检验设想的结论,然后总结出这两条指令在应用时的注意事项。<br>
  至于-1和255之间的关系,将在下面一节中详细讲解。
</td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18><font face="黑体"><a name="43">4.3 数字的表示</a></font></td>
<td></td><td></td> <!右边距>
</tr>

<tr>
<td></td><td></td> <!左边距>
<td colspan=18>
  第一章中已经讲过一些二进制数与十六进制数的知识,现在我们要对已有的知识做些扩充,最重要的一个问题就是二进制数是如何表示"符号"的。<br>
  这个问题并不复杂,表示一个带符号的整数常用的方法有三种:原码、反码表示法和补码表示法。先来看看原码表示法。在计算机中,数的符号是用一个数位来表示的,一般用数的最高位。正号用0表示,负号用1表示。所谓原码,就是简单地遵循这一规定的一种表示法。例如我们用原码表示+1,可以写成00000001,其最高位是0,表明这个数的符号是"+"。如果表示-1,则可以写成"10000001",最高位的"1"就表示其符号为"―"。这种表示带符号数的方法法就是原码表示法。<br>
  反码比原码复杂一些,它规定若一个数值为正,则它的反码和原码形式相同。如+1仍写成"00000001";若一个数值为负,则反码的符号位为1,其余各位对原码取反。如-1写成"11111110";这两种方法在计算机中很少采用,原因很简单,原码和反码不便于运算。举个例子:用原码计算-1+1=?<br>
  问题似乎不难,但需要考虑的事情很多。假如只是简单地在"10000001"的最低位加上1,那么将得到结果--10000010,根据原码的规定,这个结果是-2。<br>
  要想得到正确结果,我们必须首先要考虑将符号位置0,同时最低位也不能加1,而要减1。即使采用反码计算,也要单独处理其符号。这样计算不仅对我们自己,就是对CPU来说也是不方便的。因此,多数机器都采用补码表示法。<br>
  在补码表示法中对于负数的表达要比反码麻烦一些,负数X用"2n-|X|"表示,其中"n"是数的位数。对于八位二进制数来讲n=8,因此用八位二进制补码表示-1就是28-1=11111111,也就是十六进制数0FFH。正数的表示方法和原码一样,+1也写成"00000001"。
</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="page65.html">上一页</a> <a href="page67.html">下一页</a> <a href="page80.html">下一章</a></p>
</body>
</html>

⌨️ 快捷键说明

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