【机组】存储器、总线及堆栈寄存器实验的解密与实战

2024-01-21 09:52

本文主要是介绍【机组】存储器、总线及堆栈寄存器实验的解密与实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🌈个人主页:Sarapines Programmer
🔥 系列专栏:《机组 | 模块单元实验》
⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。

​​​​​​​​

目录

🌺一、 实验目的

🌼二、 实验内容 

🌻三、 实验详情

实验1:存储器的写操作

实验2:读存储器的数据到总线上

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

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

🍀四、 实验步骤

实验1  存储器的写操作

实验2  读存储器的数据到总线上

实验3  对四个寄存器进行写入操作

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

🌿五、 实验结果

🌷六、 实验体会

📝总结


🌺一、 实验目的

  1. 熟悉存储器的读、写操作;
  2. 掌握在总线上数据传输的方法;
  3. 熟悉堆栈寄存器的组成和硬件电路。

🌼二、 实验内容 

  1. 存储器的写操作;
  2. 读存储器的数据到总线上;
  3. 对四个寄存器进行写入与读出操作。

🌻三、 实验详情

实验1:存储器的写操作

● 把内部地址总线AJ1(8芯盒形插座)与右板上的二进制开关单元中J03插座相连(对应二进制开关H0~H7),把内部数据总线DJ8与右板上的J02插座相连(对应二进制开关H8~H15)。

● 把EMCK连到脉冲单元的PLS1,WC、RC、BUS接入二进制的开关中。(请按下表接线)。

信号定义

接入开关位号

EMCK

PLS1

WM

H22 

RM

H21 

BUS

H21 

接线图示:

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

● 二进制开关H0~H7作为地址(A0~A7)输入,置55H(对应开关如下表)。

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

8位数据

0

1

0

1

0

1

0

1

55H

● 二进制开关H8~H15作为数据(D0~D7)输入,置66H(对应开关如下表)。

H15

H14

H13

H12

H11

H10

H9

H8

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

1

1

0

0

1

1

0

66H

置各控制信号如下:

H22

H21

WM

RM、BUS

0

1

● 按脉冲单元中的PLS1脉冲按键,在EMCK上产生一个上升沿,数据从内部数据总线流向外部数据总线,将数据66H写入地址为55H的存储单元。


实验2:读存储器的数据到总线上

● 在做好实验1的基础上,保持电源开启和线路连接不变,只拔掉内部数据总线DJ8与CPT-B板上的J02插座 (对应二进制开关H8~H15) 的连接。

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

● 二进制开关H0~H7作为地址(A0~A7)输入,置55H(对应开关如下表)

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

8位数据

0

1

0

1

0

1

0

1

55H

置各控制信号如下:

H22

H21

WM

RM、BUS

1

0

● 按脉冲单元中的PLS1脉冲按键,在EMCK上产生一个上升沿,数据从外部数据总线流向内部数据总线,将存储器55H单元中的内容输出,应该为实验1中的写入的数据66H。此时数据总线上的指示灯IDB0~IDB7显示结果66H。


实验3:对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寄存器。

2、把数据写入寄存器R1

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

H15

H14

H12

H11

RR

WR

SA

SB

1

0

1

0

● 按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把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寄存器。

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


实验4:对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

附: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  存储器的写操作

(1)step1:把内部总线AJ1、DJ8分别与二进制开关单元JO3和总线J04相连,并把EMCK使用连接线接到脉冲单元的PLS1上,具体接线如下。

信号定义

接入开关位号

EMCK

PLS1

WM

H22

RM

H21

BUS

H21

(2)step2:按停止按钮,机箱停机将CY清零,再按运行键。二进制开关H0至H7作为地址输入,置55H(对应开关如下)。

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

8位数据

0

1

0

1

0

1

0

1

55H

置各数据输入如下.

H15

H14

H13

H12

H11

H10

H9

H8

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

1

1

0

0

1

1

0

66H

置各控制信号如下:

H22

H21

WM

RM、BUS

0

1

(3)step3:按下机箱的PLS1脉冲按键,在EMCK产生上升沿,把66H写入地址为55H的存储单元中。


实验2  读存储器的数据到总线上

(1)step1:在实验1的基础上拔掉DJ8与J02的连接,置平台为运行态。具体接线如表1。二进制开关H0至H7作为地址输入,置55H(对应开关如下)。

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

8位数据

0

1

0

1

0

1

0

1

55H

置各控制信号如下:

H22

H21

WM

RM、BUS

1

0

(2)step2:按下机箱的PLS1脉冲按键,在EMCK产生上升沿,从 55H的存储单元中取出数据,显示结果为66H。


实验3  对四个寄存器进行写入操作

(1)step1:将R-IN、R-OUT分别与J03、DJ4相连,其余连线如下.

信号定义

接入开关位号

RCK

PLS1

RR

H15

WR

H14

SA

H12

SB

H11

置H0置H7作为寄存器R0的数据输入,置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

平台在运行状态下各开关如下.

H15

H14

H12

H11

RR

WR

SA

SB

1

0

0

0

按下机箱的PLS1脉冲按键,在RCK产生上升沿,把11H打入R0寄存器。

(2)step2:置H0至H7为22H如下.

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

0

1

0

0

0

1

0

22H

平台在运行状态下各开关如下.

H15

H14

H12

H11

RR

WR

SA

SB

1

0

1

0

   

按下机箱的PLS1脉冲按键,在RCK产生上升沿,把22H打入R1寄存器。

(3)step3:置H0至H7为33H如下.

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

0

1

1

0

0

1

1

33H

平台在运行状态下各开关如下.

H15

H14

H12

H11

RR

WR

SA

SB

1

0

0

1

   

按下机箱的PLS1脉冲按键,在RCK产生上升沿,把33H打入R2寄存器。


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

(1)step1:置各开关如下。

H15

H14

H12

H11

RR

WR

SA

SB

0

1

0

0

(2)step2: 设置输入SA、SB分别为00,01,10,11查看数据总线灯的变化如下  。

         

SA

SB

0                   0

SA

SB

0                   1

SA

SB

1                   0

SA

SB

1                   1


🌿五、 实验结果

实验1  存储器的写操作

  

实验2  读存储器的数据到总线上

  

实验3  对四个寄存器进行写入操作

    

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

SA=0、SB=0显示结果

SA=0、SB=1显示结果

  

SA=1、SB=0显示结果

      

SA=1、SB=1显示结果

  


🌷六、 实验体会

通过对实验操作以及结果分析,我熟悉了对进行存储器进行读、写操作,同时掌握了在总线上数据传输的方法并且熟悉了堆栈寄存器的组成和硬件电路。此次实验1和实验2很快得以解决,但实验3对堆栈寄存器的写操作一直看不到结果,四个显示均为FF导致我以为是平台的问题,但当我仔细看书分析发现自己忽略了实验3的写操作看不见平台变化,并且注意到每次写入R0R1R2寄存器的数据输入都不一样,比如R0数据输入是11HR122HR333H。虽此次实验稍有曲折,但看到结果对自己还是很欣慰。


📝总结

计算机组成原理领域就像一片广袤而未被完全探索的技术海洋,邀请你勇敢踏足数字世界和计算机组成原理的神秘领域。这是一场结合创造力和技术挑战的学习之旅,从基础概念到硬件实现,逐步揭示更深层次的计算机结构、指令集架构和系统设计的奥秘。渴望挑战计算机组成原理的学习路径和掌握计算机硬件的技能?不妨点击下方链接,一同探讨更多数字技术的奇迹吧。我们推出了引领趋势的💻 计算机组成原理专栏:​​​​​​​《机组 | 模块单元实验》,旨在深度探索计算机系统技术的实际应用和创新。🌐💡

这篇关于【机组】存储器、总线及堆栈寄存器实验的解密与实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We