chapter5.html

来自「我们学校教授的课件 很好的学习助手啊 里面讲的很详细 汉好」· HTML 代码 · 共 755 行 · 第 1/4 页

HTML
755
字号
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>New Page 3</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body bgcolor="#715839" text="#FFFFFF">

<h1 align="left"><font face="宋体" color="#FFFFFF" size="7">第五章&nbsp; 8086/8088 
CPU操作时序</font></h1>

<h2 align="center"><font face="宋体" color="#FFFFFF"><big>§</big><font size="6">5.1&nbsp; 
CPU引脚信号功能</font></font></h2>

<p align="left">&nbsp; </p>

<h3 align="left"><big><big>一、8086的总线周期</big></big></h3>

<blockquote>
  <p align="left"><big><big>1、时钟周期:是CPU的基本时间计量单位,由CPU的主频决定。8086主频为5MHz,则其时钟周期为T=200ns。</big></big></p>
  <p align="left"><big><big>2、总线周期:系统执行一次总线操作的周期。在8086/8088系统中,一个最基本的总线周期包括4个时钟周期,习惯上称为T<sub>1</sub>状态、T<sub>2</sub>状态、T<sub>3</sub>状态和T<sub>4</sub>状态。若存储器或I/O接口的数据处理速度较慢,会在T<sub>3</sub>状态后加入1</big></big><font
  face="宋体" size="5" color="#FFFFFF">~n个等待周期,称为</font><big><big>T<sub>w</sub></big></big><font
  face="宋体" size="5" color="#FFFFFF">。</font></p>
  <p align="left"><big><big>例如,某个总线读周期:</big></big></p>
</blockquote>

<p align="center"><img src="zxchq.gif" width="526" height="254"
alt="zxchq.gif (4207 bytes)"></p>

<blockquote>
  <p align="left"><big><big>3、执行总线周期的场合:</big></big></p>
  <blockquote>
    <p align="left"><big><big>a、CPU和内存之间传输数据;</big></big></p>
    <p align="left"><big><big>b、CPU填充指令队列;</big></big></p>
    <p align="left"><big><big>c、CPU和I/O接口之间传输数据。</big></big></p>
  </blockquote>
</blockquote>

<h3 align="left"><big><big>二、引脚信号</big></big></h3>

<blockquote>
  <p align="left"><big><big><font color="#FFFF00">最小模式</font>:系统中只有8086或者8088一个微处理器。在这种系统中,所有的总线控制信号都直接由8086或8088产生,系统中的总线控制逻辑电路被减到“最少”。</big></big></p>
  <p align="left"><big><big><font color="#00FF00">最大模式</font>:系统中包含有两个或多个微处理器,其中一个为8086或8088,称为主处理器,其他的处理器称为协处理器。例如,数值运算协处理器8087,输入输出协处理器8089。</big></big></p>
</blockquote>

<p align="left"><img src="yinjiao.gif" width="729" height="531"
alt="yinjiao.gif (15332 bytes)"></p>

<blockquote>
  <h4 align="left"><font face="宋体" size="5" color="#FFFFFF">1、最小模式和最大模式共用引脚</font></h4>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">1)GND和VCC---地和电源</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">1和20<a href="yinjiao.gif">引脚</a>为地GND,40引脚为+5V电源VCC。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">2)AD<sub>15</sub>~AD<sub>0</sub>---地址和数据共用引脚</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">双向,39引脚为AD<sub>15</sub>,2~16引脚为AD<sub>14</sub>~AD<sub>0</sub>。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">在80888中,AD<sub>15</sub>~AD<sub>8</sub>不复用,只是单向输出地址,称为A<sub>15</sub>~A<sub>8</sub>。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">3)A<sub>19</sub>/S<sub>6</sub>~A<sub>16</sub>/S<sub>3</sub>---地址状态复用引脚</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输出,35~38<a
    href="yinjiao.gif">引脚</a>。在总线周期的T<sub>1</sub>状态,输出地址信息;在T<sub>2</sub>、T<sub>3</sub>、T<sub>W</sub>和T<sub>4</sub>状态,输出状态信息。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">S<sub>6</sub>=0,表示8086/8088与总线相连,所以,在8086/8088系统的T<sub>2</sub>、T<sub>3</sub>、T<sub>W</sub>和T<sub>4</sub>状态,S<sub>6</sub>恒为零。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">S<sub>5</sub>用来指示IF标志的设置,S<sub>5</sub>=1,表示允许可屏蔽中断请求,S<sub>5</sub>=0,表示禁止可屏蔽中断请求。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">S<sub>4</sub>和S<sub>3</sub>合起来指出当前正在使用的段寄存器。</font></p>
  </blockquote>
</blockquote>
<div align="center"><center>

<table border="1" width="72%">
  <tr>
    <td width="33%" bgcolor="#C0C0C0" style="color: rgb(0,0,0)" align="center"><big><big>S<sub>4</sub></big></big></td>
    <td width="33%" bgcolor="#C0C0C0" style="color: rgb(0,0,0)" align="center"><big><big>S<sub>3</sub></big></big></td>
    <td width="34%" bgcolor="#C0C0C0" style="color: rgb(0,0,0)" align="center"><big><big>含义</big></big></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>0</big></big></td>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>0</big></big></td>
    <td width="34%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>当前正在使用ES</big></big></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>0</big></big></td>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>1</big></big></td>
    <td width="34%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>当前正在使用SS</big></big></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>1</big></big></td>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>0</big></big></td>
    <td width="34%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>当前正在使用CS或未用任何段寄存器</big></big></td>
  </tr>
  <tr>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>1</big></big></td>
    <td width="33%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>1</big></big></td>
    <td width="34%" bgcolor="#C4BD80" style="color: rgb(0,0,0)" align="center"><big><big>当前正在使用DS</big></big></td>
  </tr>
</table>
</center></div>

<blockquote>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">4)<span
    style="text-decoration: overline">BHE</span>/S<sub>7</sub>---高8位数据总线允许/状态复用引脚</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输出,34<a
    href="yinjiao.gif">引脚</a>。在总线周期的T<sub>1</sub>状态,输出为<span
    style="text-decoration: overline">BHE</span>(Bus High Enable)信号,表示数据总线的高8位D<sub>15</sub>~D<sub>8</sub>有效。在总线周期的T<sub>2</sub>、T<sub>3</sub>、T<sub>W</sub>和T<sub>4</sub>状态,输出为S<sub>7</sub>,目前无意义。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">在8086中,<span
    style="text-decoration: overline">BHE</span>和地址总线的A<sub>0</sub>信号合起来通知连接在总线上的存储器和I/O接口,当前的数据以何种格式出现。</font></p>
  </blockquote>
</blockquote>
<div align="center"><center>

<table border="1" width="79%">
  <tr>
    <td width="15%" align="center" style="color: rgb(0,0,0)" bgcolor="#C0C0C0"><font
    face="宋体" size="5" color="#000000"><span style="text-decoration: overline">BHE</span></font></td>
    <td width="13%" align="center" style="color: rgb(0,0,0)" bgcolor="#C0C0C0"><big><big>A<sub>0</sub></big></big></td>
    <td width="39%" align="center" style="color: rgb(0,0,0)" bgcolor="#C0C0C0"><big><big>操作</big></big></td>
    <td width="33%" align="center" style="color: rgb(0,0,0)" bgcolor="#C0C0C0"><big><big>使用的数据总线</big></big></td>
  </tr>
  <tr>
    <td width="15%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="13%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="39%" bgcolor="#A3A679"><font color="#000000"><big><big>从偶地址开始读/写一个字数据</big></big></font></td>
    <td width="33%" align="center" bgcolor="#A3A679"><big><big><font color="#000000">AD15~AD0</font></big></big></td>
  </tr>
  <tr>
    <td width="15%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>1</big></big></font></td>
    <td width="13%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="39%" bgcolor="#A3A679"><font color="#000000"><big><big>从偶地址开始读/写一个字节数据</big></big></font></td>
    <td width="33%" align="center" bgcolor="#A3A679"><big><big><font color="#000000">AD7~AD0</font></big></big></td>
  </tr>
  <tr>
    <td width="15%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="13%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>1</big></big></font></td>
    <td width="39%" bgcolor="#A3A679"><font color="#000000"><big><big>从奇地址开始读/写一个字节数据</big></big></font></td>
    <td width="33%" align="center" bgcolor="#A3A679"><big><big><font color="#000000">AD15~AD8</font></big></big></td>
  </tr>
  <tr>
    <td width="15%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="13%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>1</big></big></font></td>
    <td width="39%" rowspan="2" bgcolor="#A3A679"><big><big><font color="#000000">从奇地址开始读/写一个字数据(在第一个总线周期,将低8位数据送AD15~AD8,在第二个总线周期,将高8位数据送AD7~AD0)</font></big></big></td>
    <td width="33%" align="center" bgcolor="#A3A679"><big><big><font color="#000000">AD15~AD8</font></big></big></td>
  </tr>
  <tr>
    <td width="15%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>1</big></big></font></td>
    <td width="13%" align="center" bgcolor="#A3A679"><font color="#000000"><big><big>0</big></big></font></td>
    <td width="33%" align="center" bgcolor="#A3A679"><big><big><font color="#000000">AD7~AD0</font></big></big></td>
  </tr>
</table>
</center></div>

<blockquote>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">&nbsp;&nbsp;&nbsp; 在8088系统中,此引脚为<span
    style="text-decoration: overline">SS</span><sub><span style="text-decoration: none">0</span></sub>(HIGH)。8088的最大模式中,恒为高电平,8088的最小模式中,<span
    style="text-decoration: overline">SS</span><sub><span style="text-decoration: none">0</span></sub>和DT/<span
    style="text-decoration: overline">R</span>、<span style="text-decoration: overline">M</span>/IO一起决定8088的当前总线周期的读写操作。</font></p>
  </blockquote>
</blockquote>

<blockquote>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">5)NMI---非屏蔽中断引脚</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,17<a
    href="yinjiao.gif">引脚</a>。该引脚的有效输入为一个上升沿。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">6)INTR---可屏蔽中断请求</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,18引脚。该引脚的有效输入为一个高电平。CPU在执行每一条指令的最后一个时钟周期对INTR采样。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">7)<span
    style="text-decoration: overline">RD</span>---读信号</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输出,32<a
    href="yinjiao.gif">引脚</a>。在总线读周期的T<sub>2</sub>、T<sub>3</sub>和T<sub>W</sub>状态,该引脚输出有效的低电平。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">8)CLK---时钟</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,19引脚。5MHz,占空比为33%(周期的1/3为高电平,2/3为低电平)。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">9)RESET---复位信号</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,21引脚。该引脚的有效信号为一个至少持续4个时钟周期的高电平。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">10)READY---“准备好”信号</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,22<a
    href="yinjiao.gif">引脚</a>。高电平有效。CPU在每个总线周期的T<sub>3</sub>状态对READY引脚采样,决定是否为当前的总线操作插入等待状态T<sub>W</sub>。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">11)<span
    style="text-decoration: overline">TEST</span>---测试信号</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,23引脚。当该信号为有效的低电平时,结束当前的WAIT操作。经常连接8087的BUSY引脚。</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">12)MN/<span
    style="text-decoration: overline">MX</span>---最小/最大模式控制信号</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输入,33引脚。接+5V,工作在最小模式,接GND,工作在最大模式。</font></p>
  </blockquote>
  <h4 align="left"><font face="宋体" size="5" color="#FFFFFF">2、最小模式引脚</font></h4>
  <blockquote>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">1)<span
    style="text-decoration: overline">INTA</span>---中断响应</font></p>
    <p align="left"><font face="宋体" size="5" color="#FFFFFF">输出,24<a

⌨️ 快捷键说明

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