计算机组成原理 CPU组成与机器指令执行实验

一、实验目的

(1)将微程序控制器同执行部件( 整个数据通路)联机,组成一台模型计算机;

(2)用微程序控制器控制模型机数据通路;

(3)通过CPU运行九条机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。

二、实验任务

(1)对机器指令系统组成的简单程序进行译码。将下表的程序按指令格式手工汇编成十六进制机器代码。

地址

指令

机器代码

00H

LDA、R0、[R2]

58H

01H

LDA、R1、[R3]

5DH

02H

ADD、R0、R1

04H

03H

JC、+5

95H

04H

AND、R2、R3

3EH

05H

SUB、R3、R2

1BH

06H

STA、R3、R2

4BH

07H

MUL、R0、R1

24H

08H

STP

60H

09H

JMP、[R1]

84H

(2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序产生器是时序部件。连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应接到IR1、IR0上。

三、实验工具

模拟程序

四、实验步骤及实验结果

(1)对机器指令系统组成的简单程序进行译码

(2)连线

仿真面板图:

数据通路图

(3)存程序机器代码,设置通用寄存器R2、R3及内存相关单元的数据。

●设置通用寄存器R2、R3 的值。

使R2 = 60H,R3 = 61H。

1.令DP=0,DB=0,DZ =0,使实验系统处于连续运行状态。令SWC = 0、SWB = 1、SWA = 1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮,使实验系统处于初始状态。

2.在SW7-SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。例如可将该地址设置为0FFH。按一次QD按钮,将0FFH写入AR0和AR1。

3.在SW7-SW0 上设置02H, 作为通用寄存器R2的寄存器号。按一次QD按钮,则将02H写入IR。

4.在SW7-SW0设置60H, 作为R2的值。按一次QD按钮,将60H写入IR指定的R2寄存器。

5.在SW7-SW0 上设置03H, 作为通用寄存器R3的寄存器号。按一次QD按钮,将03H写入IR.

6.在SW7-SW0设置61H, 作为R3的值。按一次QD按钮,将61H写入R3.

7. 设置R2、 R3结束,按CLR#按钮,使实验系统恢复到初始状态。

●存程序机器代码。

本操作中,从00地址开始存10个机器代码: 58H,5DH,04H, 95H,3EH,1BH,4BH, 24H,60H,84H。在60H存入24H,用于给R0置初值:在61H存入83H,用于给R0置初值。

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWC=0、SWB=1、SWA=0,使实验系统处于写双端口存储器工作方式KWE。按CLR#按钮,使实验系统处于初始状态。

2.置SW7-SW0为00H,按QD按钮,将00H写入AR1。

3.置SW7-SW0为58H, 按QD按钮,将58H写入存储器00H单元。AR1自动加1,变为01H。

4.置SW7- SW0为5DH, 按QD按钮,将5DH写入存储器01H单元。AR1自动加1,变为02H。

5.按QD按钮,使AR1+1。AR1此时为03H。

6.重复进行下去,直到将84H写入存储器09H单元。按CLR#按钮, 使实验系统恢复到初始状态。

7.置SW7- SW0为60H, 按QD按钮,将60H写入AR1。

8.置SW7- SW0为24H, 按QD按钮,将24H写入存储器60H单元。AR1自动加1,变为61H。

9.置SW7-SW0为83H, 按QD按钮,将83H写入存储器61H单元。

按CLR#按钮, 使实验系统恢复到初始状态。

(4)用单拍(DP)方式执行一遍程序

在单拍执行过程中,首先要随时监测AR2的值和IR的值,以判定程序执行到何处,正在执行哪条指令。监测微地址指示灯和判断字段指示灯,对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下: .

初值:R0未定,R1未定,R2=60H,R3=61H。存储器60H单元的内容是24H,61H单元的内容是83H。

 

1. LDA R0, [R2]

执行结果R2 = 60H,R0 = 24H。

2. LDA R1, [R3]

执行结果R3 = 61H, R1 = 83H。

3. ADD R0, R1

执行结果R0=0A7H,R1=83H,C=0。

4. JC +5

执行结果转移到03H,因为C = 0。

5. AND R2, R3

执行结果R2 =60 H, R3 =61H。

6. SUB R3, R2

执行结果R2=60H,R3=01H

7. STA R3, [R2]

执行结果R2=60H,R3=01H,存储器60单元的内容为01H。

8. MUL R0, R1

执行结果R0=15H,R1=83H

9. STP

执行结果:无变化

10. JMP [R1]

执行结果转移到83H。

第一遍执行结束。执行结果是R0=15H,R1=83H,R2=60H,R3=01H,存储器60H单元的内容是01H,61H 单元的内容是83H。

(5)用单指(DZ)方式执行一遍程序。

初值:R0= 15H,R1 = 83H,R2 = 60H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H。

1. LDA RO,[R2]

执行结果R2 = 60H,R0 = 01H。

2. LDA R1,[R3]

执行结果 R3 = 01H,R1 = 5DH。

3. ADD R0,R1

执行结果R0 = 5EH,R1= 5DH,C = 0

4.JC+5

执行结果转移到03H,因为C= 0。

5. AND R2,R3

执行结果 R2=00 H,R3 =01H。

6.SUB R3,R2

执行结果 R2 = 00H,R3 = 01H

7. STA R3,[R2]

执行结果R2 = 00H,R3 = 01H,存储器00单元的内容为01H。

8.MUL RO,R1

执行结果R0 = 0B6H,R1= 5DH

9. STP

执行结果:无变化

10. JMP [R1]

执行结果转移到5DH

第二遍执行结束。执行结果是R0 = B6H,R1= 5DH,R2 = 00H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为01H。

(6)用连续方式执行一遍程序

由于00单元的内容已被修改,因此在执行前应首先恢复00H单元的内容58H。

初值:R0 = 0B6H,R1 = 5DH,R2 = 00H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为58H。

1. LDA R0,[R2]

执行结果R2= 00H,R0 = 58H。

2. LDA R1,[R3]

执行结果R3 = 01H,R1 = 5DH。

3. ADD R0,R1

执行结果 R0 = 0B5H,R1 = 5DH,C = 0

4.JC+5

执行结果转移到03H,因为C= 0。

5. AND R2,R3

执行结果R2 =00 H,R3 =01H

6. SUB R3,R2

执行结果R2 = 00H,R3 = 01H

7. STA R3,[R2]

执行结果R2 = 00H,R3 = 01H,存储器00单元的内容为01H。

8.MUL R0,R1

执行结果R0 = 41H,R1 = 5DH

9. STP

执行结果:无变化

五、个人总结

在做第3个实验任务的存程序代码时很好的了解到如何给指定地址赋予指定的值,并没按下一次QD,地址值就会加一,就可以对下一个地址进行赋值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#绘制面形图

创建windows窗体应用 ,从工具箱添加Button和Panel using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Fo…

[激光原理与应用-77]:基于激光器加工板卡的二次开发软件的系统软硬件架构

目录 一、1个板卡、1个激光器、1个振镜的应用架构、1个工位 (1)PLC (2)MES (3)加工板卡 (4)激光加工板卡与激光器之间的转接卡 (5)DB25、DB15 &#x…

力扣面试150 x 的平方根 二分 换底法 牛顿迭代法 一题多解

Problem: 69. x 的平方根 思路 👨‍🏫 参考题解 💖 袖珍计算器算法 class Solution {public int mySqrt(int x){if (x 0)return 0; // Math.exp(3):e的三次方int ans (int) Math.exp(0.5 * Math.log(x));return (long) (an…

Java面试题总结200道(四)

76、ApplicationContext 通常的实现是什么? FileSystemXmlApplicationContext :此容器从一个 XML 文件中加 载 beans 的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。ClassPathXmlApplicationContext:此容器也从一个 XML 文件…

Qt程序可执行文件打包

目录 一、新建一个目录二、命令行2.1 添加临时变量2.2 打包命令 三、添加动态库四、普通 Qt 项目打包 Qml 项目打包 笔者写的python程序打包地址(https://blog.csdn.net/qq_43700779/article/details/136994813) 一、新建一个目录 新目录(例如test)用以…

C语言自定义类型联合体和枚举

union n.工会;联邦,联盟;协会,俱乐部;联合,合并; 结婚,婚姻;美利坚合众国(the Union); (数)并,并集…

Request请求参数----中文乱码问题

一: GET POST获取请求参数: 在处理为什么会出现中文乱码的情况之前, 首先我们要直到GET 以及 POST两种获取请求参数的不同 1>POST POST获取请求参数是通过输入流getReader来进行获取的, 通过字符输入流来获取响应的请求参数, 并且在解码的时候, 默认的情况是 ISO_885…

【MySQL】InnoDB引擎

逻辑结构 InnoDB存储引擎逻辑结构如图所示: Tablespace:表空间,一个数据库可以对应多个表空间。数据库中的每张表都有一个表空间,用来存放表记录、索引等数据。 Segment:段,表空间中有多个段&#xff0c…

通过dbeaver链接dm8数据库

一、环境说明 windows 11 vmware 17 ubuntu 22 tt:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammytt:~$ docker info Client:Version: 24.0.5Context: d…

【Web】NKCTF 2024 个人wp(部分)

目录 my first cms 全世界最简单的CTF attack_tacooooo 属实太菜了,3/4 my first cms 一眼搜版本2.2.19 CVE -CVE-2024-27622 GitHub - capture0x/CMSMadeSimple 访问/admin/login.php 爆出弱口令,后台登录 admin Admin123 Extensions > User D…

华为OD机试 - 打印任务排序 - 队列(Java 2024 C卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&a…

io流的学习4

字符缓冲流 原理:底层自带了长度为8192的缓冲区提高性能。 import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;public class BufferedStringdemo01 {public static void main(String…

Springboot实现合并单元格的excel文件导入到数据库(多模块)

最近做项目的时候一直在遇到excel导入导出的问题,本篇博文也是为了记录我这几天的血泪史,并做以记录,希望各位看完之后能有所收获。 以下是我excel文档里面的具体内容: excel文件中的编码信息属于另外一张表,所以以下…

基于VS code 实现Java前后端打通—基础—使用Springboot+postgreSql+mybatis+Navicat

前言: 作者学习webjava后的而总结,总的流程概括就是先使用springboot创建项目,在application.properties中完成相应的postgreSql和mybaits的环境配置和.xml文件中dependecy依赖配置,entities实现数据表的类型模板,分别…

【机器学习】包裹式特征选择之序列前向选择法

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

php 快速入门(一)

一、配置系统环境 1.1 安装软件 1、安装php的开发软件:phpstorm 在这个软件中写代码 2、安装php的运行软件:phpstduy 写好的php程序需要放到phpstduy中,用户才能访问和测试 安装过程注意事项:安装的路径中不能有空格和中文字符&…

day6:STM32MP157——串口通信实验

使用的是cortex A7内核 【串口通信的工作原理】 本次实验使用的是uart4的串口,分别使用了uart4_tx和uart4_rx两个引脚。根据板子的原理图我们可以知道,他们分别对应着芯片的PG11和PB2 从引脚名字也可以知道使用了GPIO口,所以本次实验同样需…

MCGS学习——用户管理

用户管理介绍 用户管理主要是为了实现触摸屏的安全操作,工业过程控制中,应该尽量避免由于人为的误操作所引发的故障或事故,而某些失误带来的后果是致命的;通过用户管理严格限制各类操作的权限,使不具备操作资格的人员…

软考高级:架构与中间件技术-软件复用概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

CHAT~(持续更新)

CHAT(持续更新) 实现一个ChatGPT创建API设计页面布局业务操作技术架构 编码其他 实现一个ChatGPT 创建API 最简单也最需要信息的一步 继续往下做的前提 此处省略,想要获取接口创建方式联系 设计 页面布局 按照官网布局 业务操作 注册登…