实验五 累加器实验
一、实验目的
1) 理解累加器的概念和作用。
2) 连接运算器、存储器和累加器,熟悉计算机的数据通路。
3) 掌握使用微命令执行各种操作的方法。
二、实验要求
1) 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。在实验之前设计好要使用的微命令,填入表6-2、表6-3和表6-4。
2) 按照实验内容与步骤的要求进行实验,对预习时填写好的微命令进行验证与调试,遇到问题请冷静、独立思考,认真仔细地完成实验。
三、实验电路
图1 数据通路总框图
四、实验内容与步骤
本实验将R0用作累加器,完成一次加法运算。其中,被加数由数据开关输入,加数存放在存储器中,其地址也从数据开关输入。运算结果存入存储器中,存入的地址由数据开关设置。
1. 运行虚拟实验系统,导入实验电路图,在电路中加入一个74LS374芯片作为累加寄存器R0,将R0的数据线与总线相连。
2. 接好表6-1中列出的所有控制信号线,并仔细检查一遍,确保连接正确。连接好的电路,截图如下:
图2 数据通路实验电路
3. 进行电路预设置。将DR1、DR2和AR的 MR 置1,时序发生器的Step置1。
4. A→R0,A从数据开关输入。具体步骤如下:
1) 设计要使用的微命令,填入表1:
表1 A→R0微命令
功能 | 微命令 | ||||||||||||||
S3 | S2 | S1 | S0 | M | Cn | CE | WE | LDAR | LDDR1 | LDDR2 | ALU-B | SW-B | LDR0 | R0-B | |
数据开关→R0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
2) 打开电源。
3) 设置控制信号:数据开关→R0;将数据开关设置为A(00000011);单击时序发生器的start按钮,等待一个CPU周期。
5. 进行累加运算B+R0→R0,B为存储器操作数,B的地址由数据开关输入,运算结果存入R0。具体步骤如下:
1) 设计好要使用的微命令,填入表2:
表2 B+R0→R0微命令
功能 | 微命令 | ||||||||||||||
S3 | S2 | S1 | S0 | M | Cn | CE | WE | LDAR | LDDR1 | LDDR2 | ALU-B | SW-B | LDR0 | R0-B | |
存储单元地址→AR | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
存储器操作数→DR2 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
R0→DR1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
DR1+DR2→R0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
2) 设置控制信号:存储单元地址→AR;将数据开关设置为B的地址(00001000);单击start按钮。等待一个CPU周期后,地址已存入AR。
3) 设置控制信号:存储器操作数→DR2;单击start按钮。等待一个CPU周期后,B的值已存入DR2。
4) 设置控制信号:R0→DR1;单击start按钮,等待一个CPU周期后,R0的值已存入DR1。
5) 设置控制信号:DR1+DR2→R0;单击start按钮。等待一个CPU周期后,运算结果已存入R0。
1.数据开关→R0
2.存储器操作数→DR2
3.R0→DR1
4.DR1+DR2→R0
5.存储单元地址→AR
6. 存储R0→存储单元C,C为存储单元地址,从数据开关输入。具体步骤如下:
1) 设计好要使用的微命令,填入表3:
表3 R0→存储单元C微命令
功能 | 微命令 | ||||||||||||||
S3 | S2 | S1 | S0 | M | Cn | CE | WE | LDAR | LDDR1 | LDDR2 | ALU-B | SW-B | LDR0 | R0-B | |
存储单元地址→AR | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
R0→存储单元 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
2) 设置控制信号:存储单元地址→AR;将数据开关设置为C(00001001);单击start按钮。等待一个CPU周期后,地址C已存入AR。
3) 设置控制信号:R0→存储单元;单击start按钮。等待一个CPU周期后,运算结果已存入存储单元。
4) 单击菜单中的“工具/存储器芯片读写”,查看存储单元09H的值。
存储单元地址→AR
R0→存储单元
单击菜单中的“工具/存储器芯片读写”,查看存储单元09H的值
五、思考与分析
1、什么是累加器?它的作用是什么?
答:在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
作用:①、在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
②、在中央处理器CPU中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
③、在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。
2、什么是微指令?微指令与微命令的关系是什么?
答:微命令即控制部件通过控制线向执行部件发出各种控制命令 。在微指令的控制字段中,每一位代表一个微命令。
关系:
①、一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
②、从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器有关,与此相关也有相对应的硬设备。
③、一条机器指令对应4个CPU周期,每个CPU周期就对于一条微指令。