计算机组成原理-程序计数器实验——沐雨先生

本文详细描述了一个关于连接程序计数器与存储器的实验,涉及微命令的使用、指令读取、操作数地址获取以及程序计数器的工作原理。实验内容包括预设、取指令、执行ADD、STD和JMP指令,以及对程序计数器功能的深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

1.连接程序计数器、地址寄存器、存储器与指令寄存器,理解程序计数器的作用

2.掌握使用微命令通过程序计数器从存储器中读取指令和数据的方法.

二、实验要求

1.做好实验预习,在实验之前填好表7-4至7-7, 读懂实验电路图,熟悉实验元器件的功能特性和使用万法

2.按照实验内容与步骤的要求,独立思考,认真仔细地完成实验

3.完成实验报告

三、实验原理

在这里插入图片描述

四、实验原理

本实验用到的四条机器指令格式如下表所示

助记符机器码长度功能
IN000000008 bitSW->R0
ADD00100000 A16 bitR0 + (A) -> R0
STA01000000 A16 bitR0->(A)
JMP01100000 A16 bitA->PC

RAM 中预先装入的程序和数据如下表所示

地址(八进制)内容含义
0000000000IN
0100100000ADD
020000100010(八进制)
0301000000STA
040000100111(八进制)
0501100000JMP
060000000000
07
1000001011
11求和结果

五、实验内容及步骤

1.电路图:

在这里插入图片描述

2.预设置:将计数器的 、ENT、ENP置1,IR、AR的 置1,时序发生器的step置1

3.程序起始地址 -> PC,地址从数据开关输入:

3.1 设计好要使用的微命令,填入下表

功能微命令
SW-BUS'PC-BUS'LOAD'LDPCLDARCE'WELDIR
数据开关->PC01010100

3.2 打开电源

3.3 设置控制信号:数据开关→PC( );将数据开关设置为地址00H;单击时序发生器的Start 按钮,等待一个CPU周期,此时PC被置为00H。

4.取指令:以当前PC的值作为地址,取出存储器中相应的指令,放入指令寄存器IR,同时PC+1。同时具体步骤如下:

4.1 设计好要使用的微命令,填入下表

功能微命令
SW-BUS'PC-BUS'LOAD'LDPCLDARCE'WELDIR
PC->AR PC+110111100
RAM->BUS BUS->IR11100001

4.2 设置控制信号:PC→AR,PC+1 ( );单击 start 按钮。等待一个CPU周期,此时PC的值存入AR,而后PC递增1。

4.3设置控制信号:RAM→IR( );单击Start按钮,等待一个CPU周期,此时00H地址处的N指令被取出放入了IR。注意:由于IN指令为全零,所以此时指示灯不会点亮。

5.重复执行以上两组微命令,读出PC所指单元内容(即下一条指令ADD的操作码部分)到IR。

电路图:
在这里插入图片描述

6.读ADD指令的操作数地址,在 LED上显示,同时 PC+1。注意:上一步取ADD指令后,PC的值增加了1,当前PC的值为02H,指向ADD指令操作数的地址,即PC的值是操作数地址的地址。具体步骤如下:

6.1 设计好要使用的为命令,填入下表:

功能微命令
SW-BUS'PC-BUS'LOAD'LDPCLDARCE'WELDIR
PC->AR PC+110111100
RAM->BUS11100000

6.2 设置控制信号:PC→AR,PC+1();单击Start 按钮。

6.3 设置控制信号:RAM→BUS( )

电路图:
在这里插入图片描述

7.用同样的方法取STD指令到IR,PC+1;读出STD指令的操作数地址,PC+1。

8.取JMP指令并执行:

8.1 填写下表

功能微命令
SW-BUS'PC-BUS'LOAD'LDPCLDARCE'WELDIR
PC->AR PC+110111100
RAM->BUS BUS->PC11010000

8.2 用前面的方法取 STD指令到IR,PC+1。

8.3 设置控制信号:PC→AR,PC+1( );单击Start 按钮。等待一个CPU周期。

8.4设置控制信号:RAM→BUS,BUS→PC();单击Start按钮。等待一个CPU周期,PC值已被设为00H。

六、思考与分析

1、计算机开机时,一条指令都没有执行前,程序计数器PC的值是如何设置的?

答:开机时,利用复位信号给 PC 置初值 0x00000000

2、本实验中,程序计数器是否一直指向下一条要执行的指令?

答:不是,因为如果遇到跳转指令,PC 就会跳转到目标地址

3、程序计数器与微程序有什么联系?

答:程序计数器是用来指定微程序中的每一步微操作的执行

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐雨先生

如果真的帮助到你了再打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值