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

📄 80x1.htm

📁 80x86汇编语言程序设计习题参考答案
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>第2章</title>
</head>

<body>

<font FACE="楷体_GB2312" LANG="ZH-CN" SIZE="5">
<p ALIGN="CENTER" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">第</font><font SIZE="5">2</font><font FACE="楷体_GB2312" LANG="ZH-CN" SIZE="5">章</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.1 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">系统总线是</font><font SIZE="3">CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">与内存和</font><font SIZE="3">I/O</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">子系统之间进行数据交换的通道,包括数据总线、地址总线和控制总线,分别负责在</font><font SIZE="3">CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">与内存和</font><font SIZE="3">I/O</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">子系统之间传送数据、地址和控制信息。其中,数据总线决定了</font><font SIZE="3">CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">每次存取数据的最大位数;地址总线决定了系统的最大可寻址空间;控制总线用来控制</font><font SIZE="3">CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">与内存和</font><font SIZE="3">I/O</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">设备之间的数据传送方式。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.2&nbsp; 
8</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位通用寄存器</font><font SIZE="3">8</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">个:</font><font SIZE="3">AH</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">AL</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">BH</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">BL</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">CH</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">CL</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">DH</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">DL</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位通用寄存器</font><font SIZE="3">8</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">个:</font><font SIZE="3">AX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">BX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">CX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">DX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">SI</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">DI</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">BP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">SP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
<blockquote>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">32</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位通用寄存器</font><font SIZE="3">8</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">个:</font><font SIZE="3">EAX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">EBX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">ECX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">EDX</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">ESI</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">EDI</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">EBP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">ESP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">段寄存器</font><font SIZE="3">6</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">个:</font><font SIZE="3">CS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">DS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">SS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">ES</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">FS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">GS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
</blockquote>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.3 
IP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">包含要执行的下一条指令的偏移地址;</font><font SIZE="3">SP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">包含堆栈段栈顶的偏移地址;段寄存器用来存放</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位段地址。通常,</font><font SIZE="3">CS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">存放当前代码段的段地址,</font><font SIZE="3">SS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">存放当前堆栈段的段地址,</font><font SIZE="3">DS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">ES</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">FS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">和</font><font SIZE="3">GS</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">用来存放数据段的段地址。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.4 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">因为段内偏移地址是</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位,故每个段最大只能</font><font SIZE="3">2<sup>16</sup>B</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">,即</font><font SIZE="3">64KB</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.5 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">物理地址</font><font SIZE="3"> 
= </font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">段地址</font><font SIZE="3"> 
× 16 + </font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">偏移地址。给定逻辑地址,可得到惟一的物理地址;每个物理地址可由不同的逻辑地址描述。例如,逻辑地址</font><font SIZE="3">0200:1200H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">对应惟一的物理地址</font><font SIZE="3">03200H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">,但该物理地址又可由逻辑地址</font><font SIZE="3">0320:0000H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">、</font><font SIZE="3">0210:1100H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">和</font><font SIZE="3">0000:3200H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">等来描述。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.6 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">实模式的主要特点如下:</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">(</font><font SIZE="3">1</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">)与</font><font SIZE="3">8086</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">兼容,只有低</font><font SIZE="3">20</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">条地址线有效,只能寻址第</font><font SIZE="3">1</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">个</font><font SIZE="3">1MB</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">的内存空间;</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">(</font><font SIZE="3">2</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">)采用内存分段方式,程序所使用的逻辑地址为</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位段地址</font><font SIZE="3">:16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位偏移地址,每段小于等于</font><font SIZE="3">64KB</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</font><font SIZE="3">20</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位物理地址由段地址左移</font><font SIZE="3">4</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位加偏移地址得到;</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">(</font><font SIZE="3">3</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">)</font><font SIZE="3">CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">总是从地址</font><font SIZE="3">CS:IP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">处取指令,</font><font SIZE="3">EIP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">的高</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位为</font><font SIZE="3">0</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">;</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">(</font><font SIZE="3">4</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">)</font><font SIZE="3">SS:SP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">表示堆栈段的栈顶地址,</font><font SIZE="3">ESP</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">的高</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位为</font><font SIZE="3">0</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">;</p>
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">(</font><font SIZE="3">5</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">)对于</font><font SIZE="3">32</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位</font><font SIZE="3">80x86 
CPU</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">,程序可以使用</font><font SIZE="3">32</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位寄存器和</font><font SIZE="3">32</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位操作数,但采用</font><font SIZE="3">32</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位寄存器表示偏移地址时,只使用低</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位,高</font><font SIZE="3">16</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">位为</font><font SIZE="3">0</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.7 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">首字单元地址:</font><font SIZE="3">23A10H</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">;末字单元地址:</font><font SIZE="3">23A1EH</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">。</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">2.8 
</font><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="3">这些数在内存的存放情况如下:</font></p>
<p ALIGN="LEFT" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20"> 
<table BORDER="1" CELLSPACING="1" CELLPADDING="7" WIDTH="12%" height="112">
  <tr>
    <td WIDTH="40%" VALIGN="MIDDLE" height="31"><font FACE="??ì?,SimSun" LANG="ZH-CN" SIZE="1">
      <p ALIGN="CENTER" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">…</font></td>
    <td WIDTH="93%" VALIGN="TOP" height="31">
      <p style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20"> </p>
    </td>
  </tr>
  <tr>
    <td WIDTH="40%" VALIGN="MIDDLE" height="23"><font SIZE="1">
      <p ALIGN="CENTER" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">0</font></td>
    <td WIDTH="93%" VALIGN="TOP" height="23"><font SIZE="1">
      <p ALIGN="JUSTIFY" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">10006H</font></td>
  </tr>
  <tr>
    <td WIDTH="40%" VALIGN="MIDDLE" height="23"><font SIZE="1">
      <p ALIGN="CENTER" style="line-height: 150%; text-indent: 40; margin-left: 20; margin-right: 20">3</font></td>

⌨️ 快捷键说明

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