计算机组成原理实验(5) 堆栈寄存器实验

实验五  堆栈寄存器实验

一、实验目的

1、熟悉堆栈概念

2、熟悉堆栈寄存器的组成和硬件电路

二、实验要求

按照实验步骤完成实验项目,对4个堆栈寄存器进行读出、写入数据操作。

三、实验说明

3.1  堆栈寄存器组实验构成(图3-1)

本系统内有4个寄存器R0~R3,寄存器组由4个74LS374组成,由1片74LS139(2-4译码器)来选择4个74LS374,并且由2片74LS32来组成控制线。8芯插座R-IN、R-OUT作为数据输入、输出端,可通过短8芯扁平电缆把数据输入、输出端连接到数据总线上。

图 3-1

3.2  堆栈寄存器组原理(图3-2)

由SA、SB两根控制线通过74LS139译码来选择4个寄存器(74LS374)。当WR=0时,表示数据总线向寄存器写入数据,RCK为寄存器的工作脉冲,在有上升沿时把总线上数据打入74LS139选择的那个寄存器。当RR=0时,74LS139所选择的寄存器上的数据输出至数据总线。在本系统内使用了WR=0作为写入允许,RCK信号为上升沿时打入数据、RR=0时数据输出。

图 3-2

3.3  控制信号说明:

信号名称

作  用

有效电平

SA、SB

选通寄存器

低电平有效

RR

数据读出允许

低电平有效

WR

数据写入允许

低电平有效

RCK

寄存器写入脉冲

上升沿有效

四、实验步骤

实验一:对4个寄存器进行写入操作        

        将R-IN(8芯盒形插座)与右边板上的二进制开关单元中J03插座相连(对应二进制开关H0~H7),R-OUT可通过短8芯扁平电缆与数据总线上DJ4相连。把RR、WR、SA、SB接入二进制拨动开关(SA,SB借用X0,X1的H12,H11孔),把RCK连到脉冲单元的PLS1。(请按下表接线)。

信号定义

接入开关位号

RCK

PLS1  孔

RR

H15   孔

WR

H14   孔

SA

H12   孔

SB

H11   孔

接线图示:

(1)把数据写入寄存器R0

● 二进制开关H0~H7作为数据(D0~D7)输入,置11H(对应开关如下表)

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

0

0

1

0

0

0

1

11H

● 按启停单元中的运行按钮,置实验平台为运行状态。

● 置WR=0、RR=1、SB=0、SA=0 (对应开关如下表)。

 

H15

H14

H12

H11

 

RR

WR

SA

SB

1

0

0

0

 

● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把11H打入R0寄存器。

实验结果图片如下:

把11H打入R0寄存器

(2)把数据写入寄存器R1

● 置二进制开关H0~H7(D0~D7)为22H,各控制信号对应开关如下表。

H15

H14

H12

H11

RR

WR

SA

SB

1

0

1

0

● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把22H打入R1寄存器。

实验结果图片如下:

把22H打入R1寄存器

(3)把数据写入寄存器R2

● 置二进制开关H0~H7(D0~D7)为33H,各控制信号对应开关如下表。

H15

H14

H12

H11

RR

WR

SA

SB

1

0

0

1

● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把33H打入R2寄存器。

实验结果图片如下:

把33H打入R2寄存器

● 同理:置二进制开关H0~H7为44H,RR=1 WR=0、SA=1、SB=1,在RCK脉冲作用下把44H打入R3寄存器。

实验结果图片如下:

把44H打入R3寄存器

实验二:对4个寄存器进行读出操作

● 置WR=1、RR=0、SB=0、SA=0 (对应开关如下表)。此时把寄存器R0数据读出总线数据IDB0~IDB7指示灯将显示11H。保持RR、WR的值不变(RR=0,WR=1),可通过分别设置SB、SA为10、01、11把R1,R2,R3中的值显示在总线上。观察寄存器输出的数据是否与上实验中写入的数据相同。

H15

H14

H12

H11

RR

WR

SA

SB

0

1

0

0

实验结果图片如下:

11H输出在数据总线上

22H输出在数据总线上

33H输出在数据总线上

44H输出在数据总线上

附:74LS139的逻辑

74LS139

输入

输出

 

SB

SA

Y0

Y1

Y2

Y3

选择寄存器

X

X

H

H

H

H

X

0

0

0

1

1

1

R0

0

1

1

0

1

1

R1

1

0

1

1

0

1

R2

1

1

1

1

1

0

R3

五、实验总结

 实验原理

        在本实验中,我们深入探讨了**堆栈寄存器**的概念及其实现原理。堆栈寄存器是临时存储数据的设备,通常用来实现函数调用、局部变量存储及数据回退等功能。堆栈在计算机系统中起着关键作用,尤其是在数据管理和控制结构的实施中。

1. 堆栈寄存器的组成

本实验所用的堆栈寄存器组由4个D型触发器(74LS374)构成,每个寄存器可存储8位数据(D0至D7)。通过74LS139(2-4译码器),我们可以选择性地激活任意一个寄存器进行读写操作。控制信号由二进制开关进行设置,包括:

- SA、SB:用于选择具体的寄存器,低电平有效。

- WR:写入使能信号,低电平有效。

- RR:读出使能信号,低电平有效。

- RCK:寄存器时钟脉冲信号,在上升沿有效。

通过设置这些控制信号,我们可以将数据从数据总线写入指定的寄存器或将寄存器中的数据读出到数据总线。

2. 数据写入过程

在进行写入操作时,需将WR信号设置为低电平(WR=0),并选择目标寄存器(通过SA和SB信号)。此时,将二进制开关的输出(数据输入)传输到寄存器。当RCK信号在上升沿激活时,所选择的寄存器将存储数据。实验中,我们逐步将值11H、22H、33H和44H写入R0、R1、R2和R3寄存器。

 3. 数据读出过程

在读出操作中,WR信号保持为高电平(WR=1),而RR信号设置为低电平(RR=0)。此时,选择相应的寄存器(SA和SB对应选择的寄存器)。激活的寄存器中的数据会通过数据总线输出,利用数码指示灯显示读取结果。通过这种方式,我们分别验证了R0、R1、R2和R3寄存器中保存的数据是否与之前        写入的数据一致。

 实验结果分析

通过以上实验步骤,结果显示数据成功地写入和读取相应的寄存器。每个寄存器的内容都能准确反映出在写入阶段设置的值。实验结果如下:

- 寄存器R0:读取到11H

- 寄存器R1:读取到22H

- 寄存器R2:读取到33H

- 寄存器R3:读取到44H

这些数据与实验中输入的值完全一致,表明寄存器的读写功能正常且可靠。

 个人感悟

        通过本次实验,我更深入地理解了计算机系统中堆栈的工作原理以及如何通过硬件实现堆栈的功能。堆栈作为一种重要的数据结构,广泛用于函数调用及中断处理等场景。其通过先进先出的特性,为数据的存取提供了便利。

        此外,实验中对硬件电路的搭建与调试,使我认识到了理论与实践结合的重要性。面对实验中的各种问题,解决的过程也增强了我的动手能力和逻辑思维能力。这次实验不仅加深了我对计算机组成原理的理解,也激励我进一步探索计算机科学中的更多概念与技术。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RAGFlow报错:ESConnection.sql got exception

环境: Ragflowv0.17.2 问题描述: RAGFlow报错:ESConnection.sql got exception _ming_cheng_tks, 浙江, operatorOR;minimum_should_match30%) 2025-04-25 15:55:06,862 INFO 244867 POST http://localhost:1200/_sql?formatjson […

鼠标滚动字体缩放

在VsCode中编辑文件时,有时候发现Ctrl鼠标滚轮并不能缩放字体,下面是启用这个功能的方法。 第一步: 进入设置,可以从左下角按钮菜单进入,也可以使用【Ctrl,】。 第二步: 启用鼠标滚轮缩放功能 第三步&…

深度学习·经典模型·VisionTransformer

VIT embedding处理与标准的Transformer不同,其他基本一致 Embedding Graph: ( H , W , C ) (H,W,C) (H,W,C) Patch: ( N , P 2 C ) (N,P^2C) (N,P2C),其中 N H ∗ W P 2 N\frac{H*W}{P^2} NP2H∗W​, P P P是patch的大小 注意的是,论文了保留与Bert的…

Python Selenium 完全指南:从入门到精通

Python Selenium 完全指南:从入门到精通 📚 目录 环境准备与基础入门元素定位与交互操作等待机制与异常处理面向对象封装与框架设计进阶技巧与最佳实践性能优化与调试技巧实战案例分析 环境准备与基础入门 1. 安装 Selenium 与浏览器驱动 安装 Selen…

基于ffmpeg的音视频编码

1 音频编码 本质上是由pcm文件转到一个协议文件 比如说aac协议 1.1 音频基本知识回归 比特率 比特率是指单位时间内传输或处理的比特(bit)数量,通常用 bps(bits per second,比特每秒)来表示。它是衡量数…

BT137-ASEMI机器人功率器件专用BT137

编辑:LL BT137-ASEMI机器人功率器件专用BT137 型号:BT137 品牌:ASEMI 封装:TO-220F 批号:最新 引脚数量:3 封装尺寸:如图 特性:双向可控硅 工作结温:-40℃~150℃…

攻防世界 dice_game

dice_game ​​​​​​dice_game (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file game game: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]254…

Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows SteamOS macOS]

Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows & SteamOS & macOS] 需要有游戏正版基础本体,安装路径不能带有中文,或其它非常规拉丁字符; DLC 版本 至最新全部 DLC 后续可能无法及时更新文章…

git中reset和checkout的用法

git reset:重置分支的历史与工作区​ 核心作用​​:移动当前分支的指针(即改变分支的历史),并可选地修改暂存区(Index)和工作目录(Working Directory)。常用于撤销提交或…

权限提升—Linux提权内核溢出漏洞辅助项目

前言 今天开启Linux提权的篇章,主要是讲一下Linux的内核漏洞提权,利用方式和Windows系统漏洞提权差不多,也是网上的项目扫一下,然后根据漏洞编号去找exp即可。 信息收集 首先要说一下Linux用户的权限划分。 系统用户&#xff…

React Native Redux 使用指南 redux-toolkit

React Native Redux 使用指南 redux-toolkit 一个可预测和可维护的全局状态管理 JavaScript 库 Redux 和 React-Redux以及**reduxjs/toolkit 的关系:** Redux、React-Redux、reduxjs/toolkit 是 React 生态中状态管理的「黄金三角组合」,它们的关系可…

JVM——Java 虚拟机是如何加载 Java 类的?

引入 在 Java 世界的底层运作中,类加载机制扮演着一个既神秘又关键的角色。它就像是一个精心设计的舞台幕后 machinery,确保了 Java 程序能够顺利运行。今天,我们就深入探索 Java 虚拟机(JVM)是如何加载 Java 类的。 …

清华团队提出时序聚类数据库内高效方案,已被SIGMOD 2025接收

时间序列聚类是挖掘物联网等场景下频繁模式的关键技术,但现有SOTA方法(如K-Shape)面临两大瓶颈:1)传统数据库因LSM-Tree存储导致时间戳无序,难以直接支持高效聚类;2)跨时间范围查询需…

【阿里云大模型高级工程师ACP学习笔记】2.8 部署模型

一、学习目标 特别说明:这一章节是2025年3月官方重点更新的部分,几乎对内容重新翻新改造了一遍,重点突出了对于如何结合不同的阿里云产品来部署大模型进行了更加详细的介绍和对比,这里整理给大家,方便大家参考。 在备考阿里云大模型高级工程师ACP认证的过程中,学习《2.8 …

第T10周:数据增强

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 从 tensorflow.keras 中导入 layers 模块,包含了常用的神经网络层,用来搭建模型结构。 检查并列出系统中可用的物理 GPU 设备&#xff…

uniapp 支付宝小程序自定义 navbar 无效解决方案

如图: uniapp编译到支付宝小程序隐藏默认的导航栏失效了 解决方案: 在 pages.json 文件中找到 globalStyle 中加入以下代码: "mp-alipay": {"transparentTitle": "always","titlePenetrate":…

vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值

项目场景&#xff1a; <el-table-column label"税率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …

centos7 离线安装python3 保留python2

一、事前准备&#xff1a; &#xff08;1&#xff09;查看centos具体版本 cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) &#xff08;2&#xff09;查看linux中当前python版本 centos7 默认安装python2.7.5 &#xff08;3&#xff09;查看python3的依赖&#…

十三种通信接口芯片——《器件手册--通信接口芯片》

目录 通信接口芯片 简述 基本功能 常见类型 应用场景 详尽阐述 1 RS485/RS422芯片 1. RS485和RS422标准 2. 芯片功能 3. 典型芯片及特点 4. 应用场景 5. 设计注意事项 6. 选型建议 2 RS232芯片 1. RS232标准 2. 芯片功能 3. 典型芯片及特点 4. 应用场景 5. 设计注意事项 6…

2025年RAG技术发展现状分析

2025年&#xff0c;大模型RAG&#xff08;检索增强生成&#xff09;技术经历了快速迭代与深度应用&#xff0c;逐渐从技术探索走向行业落地&#xff0c;同时也面临安全性和实用性的新挑战。以下是其发展现状的综合分析&#xff1a; 一、技术架构的持续演进 从单一到模块化架构 …