计算机组成原理:实验:累加器实验

实验五  累加器实验

一、实验目的

1) 理解累加器的概念和作用。

2) 连接运算器、存储器和累加器,熟悉计算机的数据通路。

3) 掌握使用微命令执行各种操作的方法。

二、实验要求

1) 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。在实验之前设计好要使用的微命令,填入表6-2、表6-3和表6-4。

2)  按照实验内容与步骤的要求进行实验,对预习时填写好的微命令进行验证与调试,遇到问题请冷静、独立思考,认真仔细地完成实验。

三、实验电路

数据通路总框图

四、实验内容与步骤

本实验将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周期就对于一条微指令。

### 关于累加器的实现与原理 #### 累加器的作用 累加器是计算机硬件中的一个重要组成部分,在运算过程中起到临时存储数据的关键作用。它通常用于保存当前计算的结果或将要参与下一次计算的数据[^2]。 #### 实验目标 通过累加器实验,学生可以深入理解累加器的工作机制及其在计算机体系结构中的重要性。具体来说,该实验旨在帮助学生掌握以下几个方面: - **概念理解**:明确累加器的概念以及其在数据处理过程中的功能。 - **数据通路熟悉**:连接运算器、存储器和累加器,从而全面了解计算机内部的数据流动路径。 - **微命令应用**:学会如何利用微命令来控制各个部件的操作并完成特定的任务。 #### 实验准备 为了顺利完成累加器实验,需做好充分的准备工作: 1. 预习相关内容,确保能够看懂实验所需的电路图,并熟知各元件的功能特性及使用方式。 2. 提前规划好需要用到的微命令序列,并将其记录到指定表格(如表 6-2 至表 6-4)中以便后续验证与调整。 3. 准备必要的实验设备,包括但不限于计算机组成原理实验系统和微型计算机等工具[^3]。 #### 实验步骤概述 以下是累加器实验的主要流程描述: - 根据预先设定好的方案搭建相应的实验环境; - 对照已设计出来的微指令列表逐一实施各项测试活动; - 如果发现任何异常情况,则应耐心分析原因所在并通过修改参数等方式加以解决直至达到预期效果为止; - 完成全部操作之后撰写详尽完整的实验总结文档提交给老师审阅评估成绩高低优劣之处何在等等细节均需体现在这份文件里面去呈现出来供他人参考借鉴之用。 ```python # 示例伪代码展示简单的累加逻辑模拟 def accumulator_simulation(data_list): acc_value = 0 # 初始化累加器值为零 for data in data_list: acc_value += data # 将输入数据逐项加入累加器中 return acc_value data_to_accumulate = [5, 7, 9] result = accumulator_simulation(data_to_accumulate) print(f"The accumulated result is {result}") ``` 上述代码片段仅作为理论上的简化版演示用途,并不代表实际物理层面的真实运作状况,请注意区分两者之间的差异点在哪里哦! #### 结论 通过对累加器的学习与实践探索,不仅可以让参与者更加深刻体会到这一基础构建块背后蕴含的技术魅力,而且还能有效提升他们动手解决问题的能力水平,为其今后进一步深入研究复杂高级主题奠定坚实的基础前提条件先决要素不可或缺不可替代的地位意义非凡重大深远影响广泛持久弥足珍贵值得珍视倍加珍惜好好把握住机会努力奋斗拼搏进取成就辉煌伟业开创美好未来前景光明灿烂无比广阔无垠无限可能等待着我们一起去发掘创造属于自己的传奇故事篇章吧朋友们加油干起来啊同志们让我们携手共进向着梦想彼岸勇敢前行迈进吧!!!
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值