【上海大学计算机组成原理实验报告】六、内存系统实验

一、实验目的

  1. 学习内存访问机制。
  2. 理解代码和数据的分区存放原理和技术。

二、实验原理

  1. 根据实验指导书的相关内容,地址寄存器MAR用来存放要进行读或写的存储器EM的地址。其内容经数据总线DBUS写入,因此必须在数据总线上具有数据后,配合MAR允许写的信号MAREN,在时钟上升沿跳变时写入。

  2. 根据实验指导书的相关内容,当要向存储器EM读或写数据时,必须指明读、写EM哪个地址的内容。这个地址则由地址寄存器MAR或指令计数器PC通过地址总线ABUS给出。因此在地址寄存器MAR设置了地址后,配合MAR允许输出的信号MAROE,以及存储器EM被选通并允许写的时候,数据总线上的数据才会写到MAR指定的地址中。

  3. CP226是一款汇编语言程序集成开发环境,通过这款软件我们可以更方便地进行汇编语言程序的编制、运行和调制工作。

三、实验内容

实验任务一:手动方式把立即数33H写入内存D1H单元

(1)实验步骤

  1. 注释仪器,打开电源,手不要远离电源开关,随时准备关闭电源,注意各数码管、发光管的稳定性,静待10秒,确信仪器稳定、无焦糊味。

  2. Reset键初始化系统,并设置实验箱进入手动模式。

  3. 按照下表对实验箱线路进行连接:

连接信号孔接入孔作用有效电平
1J2座J3座将K23-K16接入DBUS[7:0]
2STENK15ST寄存器写允许低电平有效
3X2K10三位组合来译码选择将数据送到DBUS上的指定寄存器
4X1K9
5X0K8
6IRENK6IR,uPC写允许低电平有效
7PCOEK5PC输出地址低电平有效
8MAROEK4MAR输出地址低电平有效
9MARENK3MAR写允许低电平有效
10EMENK2存储器与数据总线相连低电平有效
11EMRDK1存储器读允许低电平有效
12EMWRK0存储器写允许低电平有效
  1. 先在MAR中设置存储器地址。将MAREN设为允许写MAR,而后用开关K23~K16,设置数值为D1H,表示选择地址D1H,最后按下STEP键向DBUS中写入数据D1H

  2. 将数据写入EM中。将MAR设置为允许输出,并将EM设为允许写,而后用开关K23~K16,设置数值为33H后按STEP键向DBUS中写入数据33H

  3. 观察并记录实验现象。

(2)实验现象

MAR寄存器显示D1HEM寄存器显示33H

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实验任务二:手动方式把D1H单元的内容读出,再送入ST单元

(1)实验步骤

  1. 保持实验任务一的接线,将K10-K8全部置1,使数据无法从K23-K16中输入。
  2. MAR设为允许输出,并将EM设为允许读,按下STEP键,观察ST寄存器内容变化。

(2)实验现象

ST寄存器显示33H

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实验任务三:在CP226汇编语言程序集成开发环境下编写程序

通过调试和跟踪运行,将初始值05H赋予累加器A,每次减1,到0时,OUT寄存器输出FFH,期间注意观察数据走向及寄存器的输入输出状态。

(1)实验步骤

  1. 拔下实验箱上的接线,并将开关K23-K16全部置0,开关K15-K0全部置1,按下Reset键初始化系统。
  2. 打开电脑上的CP226软件,点击源程序编写如下代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 将文件保存为.asm文件,并进行编译和下载。
  2. 通过单微指令运行文件,观察运行情况并记录实验结果。

(2)实验现象

初始情况下,累加器的值为05H,随着程序的运行递减,当递减到0时,OUT寄存器输出FFH

(3)实验结论

  1. 通过设置地址寄存器MAR,以及指明EM是读还是写,我们可以对MAR中的地址进行读入和写出。
  2. 通过一系列正确的设计,我们成功地通过CP226软件完成了“将初始值05H赋予累加器A,每次减1,到0时,OUT寄存器输出FFH”操作功能的实现。

四、建议

  1. 在从MAR寄存器中读数据时,要注意将控制X2X1X0的信号关闭,防止数据通过K23~K16输入。
  2. 在编写汇编代码时,要注意大小写,当前串行口连接无效时,可切换其他串行口进行实验。

五、体会

通过此次实验,我学会了如何通过手动的方式对指定地址单元的数据进行读入和写出,也学会了如何在汇编语言程序集成开发环境下编写程序,还加深了我对计算机内存系统的理解,为进行下一次实验打下了扎实基础。

六、思考题

既然有ORG微指令,为什么集成开发环境下载到实验箱的目标程序的第一条执行语句最好存放在0号地址?

答:因为程序是顺序执行的,如果第一条执行语句不存放在0号地址,在程序执行时,在存放第一条执行语句的地址的前面,可能还存有其他指令,进而可能导致程序运行出错。

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

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

相关文章

认识微服务,认识Spring Cloud

1. 介绍 本博客探讨的内容如下所示 什么是微服务?什么是springcloud?微服务和springcloud有什么关系? 首先,没有在接触springcloud之前,我写的项目都是单体结构, 但随着网站的用户量越来越大,…

队列的特性及代码实现(C语言)

目录 队列的定义 队列的实现分析 代码实现 Queue.h Queue.c 队列的定义 队列是只允许在一端进行插入操作,而在另一段进行删除操作的线性表。 首先,让我们来看一看生活中的队列,当我们去银行办理业务的时候,我们进入银行的时候…

Python的第三方库OS库

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀OS/SHUTIL 的方法描述🚀OS/SHUTIL…

不同linux账户切换不同的cuda版本

原因 由于服务器中安装了两个版本的cuda(cuda10.1和cuda11.1),不同项目可能需要应用不同的cuda版本,但是自己又没有root权限或者只想在使用指定conda环境时改为用指定的cuda版本。总结起来有三种方法: 1、修改软链接指…

新游启航 失落的方舟台服注册指南 一文教会你方舟台服注册

新游启航!失落的方舟台服注册指南!一文教会你方舟台服注册 失落的方舟作为本月最受期待游戏之一,在上线之际许多玩家已经有点急不可待了。这款游戏是由开发商Smile gate开发的一款MMORPG类型游戏,这款游戏的基本玩法与其他MMORPG…

理解AdaBoost算法:简单流程概述(一)【流程理解、无数学推导】

什么是AdaBoost 算法? AdaBoost(Adaptive Boosting)算法,全称为 自适应提升 ,是 一种在机器学习中用作集成方法的提升技术 。它之所以被称为自适应提升,因为每个实例的权重会重新分配,错误分类…

推荐一个远程数据库 Supabase

地址:Supabase | The Open Source Firebase Alternative 使用文档: Supabase Docs

NIUSHOP开源商城单商户V6版本:前端技术架构的深度解析

摘要: 本文将对NIUSHOP开源商城单商户V6版本的前端技术架构进行深度解析。NIUSHOP V6版本以其强大的多应用多插件组合设计理念、前后端完全分离的技术架构,以及支持多语言、多平台等特点,受到了市场的广泛好评。本文将详细介绍其前端技术栈的…

HOW - BFF 服务实践系列(一)

目录 一、BFF 介绍1.1 BFF 的概念1.2 为什么需要 BFF1.3 举例说明 二、适用于Web前端的BFF应该提供哪些能力2.1 接口聚合(重要)2.2 简化和优化的API2.3 安全和身份验证(重要)2.4 缓存机制2.5 错误处理和重试机制2.6 数据格式转换2…

【算法】贪心算法简介

贪心算法概述 目录 1.贪心算法概念2.贪心算法特点3.贪心算法学习 1.贪心算法概念 贪心算法是一种 “思想” ,即解决问题时从 “局部最优” 从而达到 “全局最优” 的效果。 ①把解决问题的过程分为若干步②解决每一步时候,都选择当前最优解(不关注全局…

RDD实战:排序算子 - sortBy()

在本实战案例中,我们将使用Apache Spark的sortBy()算子来对一个包含学生信息的RDD进行排序操作。 排序规则如下: 首先按照性别升序排列。在性别相同的情况下,按照年龄降序排列。 步骤1:创建学生信息列表 首先,我们创…

基于51单片机和NRF24L01的无线温度监控设计

一、设计功能 由单片机、温度传感器、无线模块NRF24L01以及液晶显示器等构成高精度远 程无线温度监测系统。 温度显示精确到小数点后一位。 按键设定过温值,过温在液晶屏提示。 系统设计 三、器件选择3.1温度信号采集模块 传统的温度检测大多以热敏电阻为传感器&a…

【C++】list的使用(上)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🌈关于list🔥默认成员函数构造函数(constructor)析构函数(destructor)赋值运算符重载 &#x1…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Request

一、Request介绍 在计算机网络中,"Request"(请求)通常指的是客户端向服务器发送的请求消息,用于获取特定资源或执行特定操作。在Web开发中,"Request"通常指的是HTTP请求,用于客户端与服…

信号稳定,性能卓越!德思特礁鲨系列MiMo天线正式发布!

作者介绍 礁鲨系列天线,以其独特的外观设计和强大的性能,成为德思特Panorama智能天线家族的最新成员。这款天线不仅稳定提供5G、WIFI和GNSS信号,更能在各类复杂环境中展现出卓越的性能。它的设计灵感来源于海洋中的礁鲨,象征着力量…

内存管理【C++】

内存分布 C中的内存区域主要有以下5种 栈(堆栈):存放非静态局部变量/函数参数/函数返回值等等,栈是向下增长的【地址越高越先被使用】。栈区内存的开辟和销毁由系统自动执行 堆:用于程序运行时动态内存分配&#xff…

电脑丢失api-ms-win-crt-runtime-l1-1-0.dll的多种修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中,它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常运行&#xf…

大型企业用什么文件加密软件,五款适合企业的文件加密软件

大型企业在选择文件加密软件时,通常会倾向于那些能够提供全面数据保护、具有高度可定制性、易于管理且能适应复杂组织结构的解决方案。以下是一些适合大型企业使用的文件加密软件: 1.域智盾软件: 作为一款企业级文件加密软件,支持…

曲面细分技术在AI去衣中的创新应用

引言: 随着人工智能技术的飞速发展,其在图像处理领域的应用日益广泛。其中,AI去衣技术因其独特的应用场景而备受瞩目。在这一技术的发展过程中,曲面细分技术发挥了至关重要的作用。本文将深入探讨曲面细分技术在AI去衣中的作用及其…