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

一、实验目的

  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. 按照下表对实验箱线路进行连接:

连接 信号孔 接入孔 作用 有效电平
1 J2座 J3座 将K23-K16接入DBUS[7:0]
2 STEN K15 ST寄存器写允许 低电平有效
3 X2 K10 三位组合来译码选择将数据送到DBUS上的指定寄存器
4 X1 K9
5 X0 K8
6 IREN K6 IR,uPC写允许 低电平有效
7 PCOE K5 PC输出地址 低电平有效
8 MAROE K4 MAR输出地址 低电平有效
9 MAREN K3 MAR写允许 低电平有效
10 EMEN K2 存储器与数据总线相连 低电平有效
11 EMRD K1 存储器读允许 低电平有效
12 EMWR K0 存储器写允许 低电平有效
  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号地址,在程序执行时,在存放第一条执行语句的地址的前面,可能还存有其他指令,进而可能导致程序运行出错。

相关推荐
Yunni_root5 天前
Ubuntu终端跑colmap实验记录——生成sparse和poses_bounds.npy
经验分享·ubuntu·计算机视觉·nerf·colmap·实验·bad-nerf
小新_-9 天前
第五章:指令系统
计算机组成原理
安迁岚17 天前
【SQL Server】华中农业大学空间数据库实验报告 实验二 数据库表
数据库·sql·mysql·oracle·实验报告
啊呦.超能力1 个月前
计算机硬件的工作原理
计算机组成原理
Tassel_YUE2 个月前
vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系
架构·vmware·虚拟化·vsan·实验
旅僧2 个月前
多处理器基本概念(SISD、SIMD、MISD、MIMD)--自用
计算机组成原理
dulu~dulu2 个月前
数据冒险与控制冒险
java·开发语言·计算机组成原理
dulu~dulu2 个月前
I/O中断处理过程
单片机·嵌入式硬件·计算机组成原理
小新_-2 个月前
第四章:存储系统:第一节——存储器概述
计算机组成原理
Fuliy962 个月前
【计算机组成原理】实验一:运算器输入锁存器数据写实验
计算机组成原理·锁存器·实验报告·clk·运算器输入锁存器数据写实验·74hc574芯片