自学内容网 自学内容网

计算机组成原理:程序计数器实验

实验六  程序计数器实验

一、实验目的

1) 连接程序计数器、地址寄存器、存储器与指令寄存器,理解程序计数器的作用。 2) 掌握使用微命令通过程序计数器从存储器中读取指令和数据的方法。

二、实验要求

1) 做好实验预习,在实验之前填写好 1-4 读懂实验电路图,熟悉实验元器件的功能特性 和使用方法。

2) 按照实验内容与步骤的要求进行实验,对预习时填写好的微命令进行验证与调试,遇到问 题请冷静、独立思考,认真仔细地完成实验。

三、实验原理

1.  实验数据总框图

2.  实验用到的四条机器指令格式如表 1 所示

3.  RAM 中预存的程序和数据如表 2 所示

四、实验内容与步骤

1.    阅读 RAM 中的程序,并回答问题:此程序的功能是什么?

              答:从数据开关输入1个数,与存储单元08H相加,结果存放到09H存储单元中,循环执行此段代码。

2.    运行虚拟实验系统,导入实验电路图,接好所有控制信号线,连接好的电路截图如下所示:

图 1  数据通路实验电路

3.    电路预设置:将计数器的CR 、ENT 、ENP 置 1 ,IR 、AR 的 MR 置 1 ,时序发生器的 Step 置 1。 4.    程序起始地址PC 地址从数据开关输入。具体步骤如下:

1) 设计好要使用的微命令,填入表 1:

表 1  程序起始地址→PC 微命令

功能

微命令

LOAD

LDPC

CE

LDIR

SW - BUS

PC - BUS

LDAR

WE

数据开关→ PC

0

1

0

1

0

1

0

0

2) 打开电源。

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

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

1) 设计好要使用的微命令,填入表 2:

表 2  取指令微命令

功能

微命令

PC - BUS

LDPC

CE

LDIR

SW - BUS

LOAD

LDAR

WE

PC→AR,PC+1

1

0

1

1

1

1

0

0

RAM→ BUS,BUS→ IR

1

1

1

0

0

0

0

1

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

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

6.    重复执行一次表 2 中的 2 组微命令,读出 PC 所指单元内容到 IR。

7.     ADD 指令的操作数地址,在 LED 上显示,同时 PC+1 。具体步骤如下:

1) 设计好要使用的微命令,填入表 3:

表 3  读 ADD 指令的操作数地址微命令

功能

微命令

LOAD

LDPC

CE

LDIR

SW - BUS

PC - BUS

LDAR

WE

PC→AR,PC+1

1

0

1

1

1

1

0

0

RAM→ BUS

1

1

1

0

0

0

0

0

2) 设置控制信号:PC→AR,PC+1;单击 start 按钮。等待一个 CPU 周期。 3) 设置控制信号:RAM→BUS。

8.    用同样的方法取 STA 指令到 IR ,PC+1;读出 STA 指令的操作数地址,PC+1。 9.    JMP 指令并执行,步骤如下:

1) 取指令的微命令上面已经有了,需要补充执行跳转的微命令,请填入表 4:

表 4   取 JMP 指令并执行微命令

功能

微命令

PC - BUS

LDPC

LDAR

CE

WE

LDIR

SW - BUS

LOAD

PC→AR,PC+1

1

0

1

1

1

1

0

0

RAM→ BUS,BUS→ PC

1

1

0

1

0

0

0

0

2) 用前面的方法取 JMP 指令到 IR ,PC+1。

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

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

10.  尝试在读 ADD 指令的操作数地址时,不仅仅读出操作数地址,也把真正的操作数从存储器读出 来,并在 LED 上显示。

五、思考与分折

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

    答:存放当前欲执行的地址。

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

    答:不是的,地址为06H时,PC指向00H。

  1.  程序计数器与微程序有什么联系?

     答:二者是包含关系,微程序可能需要使用计数器来实现一些特定的功能。

实验截图1-n

00H

 

00H

IN指令为0

AR=00H

PC+1 -> 01H

01H

01H

00100000

PC+1 ->02H

02H

02H

00001000

PC+1 ->03H

03H

03H

01000000

PC+1 ->04H

04H

04H

00001001

PC+1 ->05H

05H

05H

01100000

PC+1 ->06H

06H

06H

00000000

PC+1 ->07H


原文地址:https://blog.csdn.net/2303_81073778/article/details/144134474

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!