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

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

相关文章

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析