<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6275d2839221806f9d9f4e6e/bg2.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 xd h4 y10 ff1 fs1 fc0 sc0 ls0 ws0">一、<span class="_ _1f"> </span>实验目的</div><div class="t m0 xe h8 y11 ff2 fs2 fc0 sc0 ls0 ws0">1.<span class="_ _f"> </span><span class="ff1">通过本次实验,了解并掌握微程序控制器的工作原理。</span> <span class="ff1">通过分析</span> </div><div class="t m0 xf h8 y12 ff2 fs2 fc0 sc0 ls0 ws0">TEC-5 <span class="ff1">微程序控制器的<span class="fs3">构</span>造,</span> <span class="ff1">掌握从指令系统和数据通路出发,</span> <span class="ff1">设计</span></div><div class="t m0 xf h8 y13 ff1 fs2 fc0 sc0 ls0 ws0">微程序控制器的基本方法。</div><div class="t m0 xe h8 y14 ff2 fs2 fc0 sc0 ls0 ws0">2.<span class="_ _f"> </span><span class="ff1">应用软</span>/<span class="ff1">硬件设计微程序控制器的虚拟过程。</span></div><div class="t m0 xd h4 y15 ff1 fs1 fc0 sc0 ls0 ws0">二、<span class="_ _1f"> </span>实验内容</div><div class="t m0 x10 h8 y16 ff1 fs2 fc0 sc0 ls0 ws0">在指令流程图上,标出每个<span class="_ _20"> </span><span class="ff2">CPU<span class="_ _20"> </span></span>周期的控制信号。</div><div class="t m0 x10 h8 y17 ff1 fs2 fc0 sc0 ls0 ws0">硬件或软件方法任选其一,采用微程序控制器原理,设计并实现该<span class="_ _20"> </span><span class="ff2">CPU<span class="_ _20"> </span></span>的</div><div class="t m0 xd h8 y18 ff1 fs2 fc0 sc0 ls0 ws0">操作控制器。</div><div class="t m0 xd h4 y8 ff1 fs1 fc0 sc0 ls0 ws0">三、<span class="_ _1f"> </span>实验工具</div><div class="t m0 x11 h9 y19 ff2 fs4 fc0 sc0 ls0 ws0">Visual c++ 6.0</div><div class="t m0 xd h4 y1a ff1 fs1 fc0 sc0 ls0 ws0">四、<span class="_ _1f"> </span>实验说明</div><div class="t m0 x10 h8 y1b ff1 fs2 fc0 sc0 ls0 ws0">以<span class="_ _20"> </span><span class="ff2">ADD<span class="_ _21"></span>,SUB,AND<span class="_ _21"></span>,ST<span class="_ _22"></span>A,LDA,JC,STP<span class="_ _23"></span>,OUT<span class="_"> </span><span class="ff1">八条指令为基础,写出每条指令所对</span></span></div><div class="t m0 xd h8 y1c ff1 fs2 fc0 sc0 ls0 ws0">应的<span class="_ _20"> </span><span class="ff2">CPU<span class="_ _20"> </span></span>周期的控制信号,根据该控制信号控制每个微操作,并以变量的形式</div><div class="t m0 xd h8 y1d ff1 fs2 fc0 sc0 ls0 ws0">存储。利用二维数组存储每个<span class="_ _20"> </span><span class="ff2">CPU<span class="_ _20"> </span></span>周期的微程序控制指令和间接的微程序控制</div><div class="t m0 xd h8 y1e ff1 fs2 fc0 sc0 ls0 ws0">地址,由终端给定要执行的指令,到二维数组中寻址并执行每个微指令。</div><div class="t m0 xd h4 y1f ff1 fs1 fc0 sc0 ls0 ws0">五、<span class="_ _1f"> </span>实验数据记录</div><div class="t m0 xd ha y20 ff1 fs5 fc0 sc0 ls0 ws0">实验代码:</div><div class="t m0 xd hb y21 ff2 fs5 fc0 sc0 ls0 ws0">#include<iostream.h></div><div class="t m0 xd hb y22 ff2 fs5 fc0 sc0 ls0 ws0">int DR1=0,DR2=1,Rd=2,Rs=3,PC=4,AR=5,RAM=6;</div><div class="t m0 xd ha y23 ff2 fs5 fc0 sc0 ls0 ws0">int minir<span class="_ _21"></span>am[15][32]={{0,0,0,0,1,0,0,1,0,0,0,1,0,<span class="_ _9"></span>0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">取值<span class="_ _20"> </span></span>0F</div><div class="t m0 x12 ha y24 ff2 fs5 fc0 sc0 ls0 ws0">{ 0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1<span class="_ _9"></span>,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">加法第一个周期<span class="_ _24"> </span></span>10</div><div class="t m0 x12 ha y25 ff2 fs5 fc0 sc0 ls0 ws0">{ 1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1<span class="_ _9"></span>,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">减法第一个周期<span class="_ _24"> </span></span>11</div><div class="t m0 x12 ha y26 ff2 fs5 fc0 sc0 ls0 ws0">{ 0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1<span class="_ _9"></span>,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">与第一个周期<span class="_ _24"> </span></span>12</div><div class="t m0 x12 ha y27 ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1<span class="_ _9"></span>,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">存数第一个周期<span class="_ _24"> </span></span>13</div><div class="t m0 x12 ha y28 ff2 fs5 fc0 sc0 ls0 ws0">{ 0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0<span class="_ _9"></span>,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">取数第一个周期<span class="_ _24"> </span></span>14</div><div class="t m0 x12 ha y29 ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">跳转第一个周期<span class="_ _24"> </span></span>15</div><div class="t m0 x12 ha y2a ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0<span class="_ _9"></span>,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">停机第一个周期<span class="_ _24"> </span></span>16</div><div class="t m0 x12 ha y2b ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0<span class="_ _9"></span>,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">输出第一个周期<span class="_ _24"> </span></span>17</div><div class="t m0 x12 ha y2c ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,1,1,1,0,1,1,1,1,1,0,1,0,0,0},//<span class="_ _9"></span><span class="ff1">加法第二个周期<span class="_ _24"> </span></span>18</div><div class="t m0 x12 ha y2d ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0},//<span class="_ _9"></span><span class="ff1">减法第二个周期<span class="_ _24"> </span></span>19</div><div class="t m0 x12 ha y2e ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,1,1,1,0,1,1,1,1,1,1,1,1,0,1},//<span class="_ _9"></span><span class="ff1">与第二个周期<span class="_ _24"> </span></span>1A</div><div class="t m0 x12 ha y2f ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1},//<span class="_ _9"></span><span class="ff1">存数第二个周期<span class="_ _24"> </span></span>1B</div><div class="t m0 x12 ha y30 ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0<span class="_ _9"></span>,0,1,1,1,1,0,1,0,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">取数第二个周期<span class="_ _24"> </span></span>1C</div><div class="t m0 x12 ha y31 ff2 fs5 fc0 sc0 ls0 ws0">{ 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0<span class="_ _9"></span>,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0},//<span class="_ _9"></span><span class="ff1">跳转第二个周期<span class="_ _24"> </span></span>1F</div><div class="t m0 x12 hb y32 ff2 fs5 fc0 sc0 ls0 ws0">};</div><div class="t m0 xd ha y33 ff2 fs5 fc0 sc0 ls0 ws0">int f<span class="_ _21"></span>ormaddress(in<span class="_ _21"></span>t a)//<span class="ff1">形成下一条微指令的地址</span></div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>