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

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

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实