CPU 与简单模型机设计实验

时间:2024.4.1

 1.    试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为 STALAD SUB,指令操作码分别为十六进制的607080

<1>R0和某个存储器相加,R0是可以直接读进来的,R0和另一个存储单元内容相加,如果两个值都是读入的话,就要将一个放在R0中,可以直接读入,另一个放存在储单元。可以先将值读入到R0 中,在将R0保存到其他的存储单元中,进行加法时从存储单元中取出放在临时寄存器中,这样是两个寄存器相加减就可以。

  具体步骤:1)将R0中的数据送ALU中的A; 2)给出另一个数在内存中的地址; 

3)从内存中取出相应的数据并送ALU中的B; 4)进行加法运算并将结果送R0。

<2>对于增加存数、取数和减法三条机器指令,

     存数指令STA具体操作过程如下:

         1)从IN读入数据要存储的地址;

 2)将地址送至AR;

 3)从IN读入要存储的数据; 

4)将数据送入内存中的相应存储单元。

对于取数指令LAD具体操作过程如下:

1)从IN读入数据的存储地址; 

2)将存储地址送至AR;

 3)将取出的数据送至R0 

减法指令的具体操作过程如下:

 1)将被减数送至ALU的A;

 2)将减数送至ALU的B; 

3)ALU进行减法操作,结果送R0;

    2.利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。

       答: 十六进制比八进制多了一半,该内容利用的指令系统,编写相应的程序。可以先将两个十六位的二进制数的高八位和低八位分别存入不同的地址,然后先取出两个数低八位进行相加,送至OUT单元显示,进位进行存储;再进行两个数低八位相加,结果在数据总线出显示。

     微程序设计流程图:

      

微代码

$M 00 000001    ; NOP

  $M 01 006D42    ; PC->AR,PC加1

  $M 02 107073    ; MEM->IR, P<1>

 

  $M 11 006412    ; pc->ar,PC++

  $M 12 183013    ; mem->ar

  $M 13 200401    ; mem->b

  $M 15 006416    ; alu->r0     加法

  $M 16 103001    ; pc->ar,PC++ 

  $M 17 183018   ; mem->ar

  $M 18 006419   ; mem->b

  $M 19 102005    ; alu->r0    减法

  $M 1D 105141    ; mem->ar

  $M 2C 18302D    ; R0->MEM    STA

  $M 2D 00642E    ; m->ar

  $M 2E 10202F    ; m->r0  LAD

  $M 2F 05B201    ; m->pc  JMP PC++

  $M 30 001417    ; R0->A     加法 

  $M 32 183001    ; R0->A     减法 

  $M 33 280401    ; pc->ar ,PC++     置ro [AR]->R0   LAD

  $M 35 000035    ; STA:PC->AR,PC++,mem->ar,R0->MEM(AR) 

  $M 36 183011    ; IN->R0    输入IN

  $M 37 183015    ; R0->OUT   输出OUT

        $M 38 00142C    ; pc  

       $M 3C 006D5D    ; pc->ar    JMP

<2>利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。

    以下的一段程序用于实现两个16位二进制数的加法,其思想为高位和低位分别对应相加,将低位的进位给高位,减法同理。结果的低八位在OUT单元显示,高八位数据在数据总线显示,最高位的进位忽略。 

$P 00 60 STA             存加数的低八位

$P 01 60 STA              存被加数的低八位

$P 02 60 STA             存加数的高八位

$P 03 60 STA             存被加数的高八位 

$P 04 70 LDA             取出加数的低八位存入R0中$P 05 00 ADD             两个数低八位相加 

$P 06 30 OUT             两个数低八位相加的结果在OUT单$P 07 70 LDA             取出加数的高八位存入R0中$P 08 00 ADD             两个数的高八位相加$P 09 50 HLT             停机 

     加法: 

     输入的两个数据分别为:       01010010,11111111(52FF)      00110010,00000001(3201)  输出的结果为: 

        00000001,00000000(8500) 

减法: 

输入的两个数据分别为: 

       01010110,11111111(56FF)      00110010,00000001(3201)  输出的结果为: 

       001111111,11111110(3FFE) 

  1. 在上实验课时,因为自己的实验器材的问题,一直都不能完成一个数与自身相加,之后也尝试了很多次才调整过来,感觉连线的过程千万不能将线接错,否则结果很难出来,做实验一定要很细心。

第二篇:CPU与简单模型机设计


湖南师范大学职业技术学院(工学院)实验数据报告单

实验课程:计算机组成原理                                                 

实验题目:CPU与简单模型机设计实验                                        

实验日期: 20##年  6  月 1 日                                            

一.实验目的

1.   掌握一个简单CPU的组成原理。

2.   在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

3.   为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。

二.实验内容


本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。

三.实验原理

CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(RO)、指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1-1所示。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。

图5-1-1   基本CPU构成原理图

本模型机和前面微程序控制器实验相比,共有5条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移)、HLT(停机),其指令格式如下:

助记符     机器指令码           说明

IN         0010 0000            IN->RO

ADD        0000 0000            RO+RO->RO

OUT        0011 0000            RO->OUT

HLT        0101 0000            停机

均为单字节指令,********为addr对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。

四.实验结果与分析

(1)程序运行前必须对微地址清零。拨动实验仪右下角清零开关CLR(1→0→1)后,观看实验仪右上方的微地址显示灯(UA0-UA5)是否全为零,若全为零,则正确,若不全为零,说明有问题,要检查。

(2)使用单步微指令运行程序,单击该系统第三行的“单步微指令”图标即可。

(3)在每次单步执行一条微指令的过程中,都要观察屏幕动态流线显示的运行结果,根据屏幕显示的结果分析与该条微指令的格式和功能是否一致。若不一致,必须检查原因。

(4)上面程序的运行中,每执行完一条机器指令,微地址都要返回到01,是应为为取下一条指令作准备。

(5)在每一条机器指令的执行过程中,第一个CPU周期,取指令阶段是由下列微指令组成:01  02。它们完成的操作是:PC AR,M DR,DR IR,PC+1。

        

实验成绩:             

指导老师签名:        

更多相关推荐:
设计模式实验报告

设计模式实验指导书10学时教师张凯实验一工厂模式的应用实验目的1掌握工厂模式Factory的特点2分析具体问题使用工厂模式进行设计实验内容和要求有一个OEM制造商代理做HP笔记本电脑Laptop后来该制造商得到...

1099111130设计模式实验报告

哈尔滨工业大学华德应用技术学院实验报告课程名称软件设计模式系别计算机应用技术系专业软件工程学号1099111130姓名陈天任学期20xx年春季学期实验成绩计算机应用技术系监制123456789101112131...

设计模式实验报告

实验报告计算机科学与技术学院课程名称软件设计模式专业计算机科学与技术班级学号姓名实验一单例模式的应用1实验目的1掌握单例模式Singleton的特点2分析具体问题使用单例模式进行设计2实验内容和要求很多应用项目...

刘伟设计模式实验报告实验一

12实验1UML实验1实验学时2每组人数1实验类型31基础性2综合性3设计性4研究性实验要求11必修2选修3其它实验类别31基础2专业基础3专业4其它一实验目的1学会安装和使用建模工具PowerDesigner...

java设计模式实验报告

设计模式实验报告学院专业姓名学号指导教师一实例实例简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状圆形方形和三角形等的绘图工具每个几何图形都要有绘制draw和擦除erase两个方法要求在绘制不支持的几何...

设计模式上机实验二实验报告

设计模式实验二实验报告书专业班级软件0703学号3901070324姓名吉亚云指导老师刘伟时间20xx年4月24日中南大学软件学院1实验二设计模式上机实验二一实验目的使用PowerDesigner和任意一种面向...

UML实验报告书实验3 设计模式

淮海工学院计算机工程学院实验报告书课程名UML理论及实践题目正向工程班级学号20xx140093姓名薛慧君UML理论与实践实验报告一目的与要求1熟悉面向对象原则熟悉GoF中的模式2会初步使用设计模式解决实际问题...

数据库课程设计实验报告6

课程设计报告课程设计题目图书管理系统学生姓名易禄发专业网络工程班级10211302学号1021130207指导教师黄燕20xx年12月06日摘要数据库原理及应用课程设计是软件工程专业集中实践性环节之一是学习完数...

云大设计模式实验6(命令模式)

云南大学软件学院实验报告课程设计模式学期20xx20xx学年第一学期任课教师陆歌浩专业软件工程学号20xx1120xx7姓名孙金文成绩实验6命令模式一实验目的1熟悉命令模式2运用命令模式编制简单的java程序二...

设计模式实验1 策略模式

实验报告课程设计模式实验学期20xx20xx学年第一学期任课教师专业学号姓名成绩实验1策略模式1题目在教材25页上有一堆杂乱的类与接口选取自一个动作冒险游戏我们能看到代表游戏角色的类和角色可以使用的武器行为的类...

课程设计及实验报告模板(20xx学生用)

苏州科技大学电子与信息工程学院模拟电子技术课程设计报告课设名称学生姓名学号班级同组姓名指导教师年月以下红色部分表示需要小组根据实际情况更改苏州科技大学电子与信息工程学院模拟电子技术课程设计报告1设计课题名称2课...

操作系统课程设计实验报告模板

题目题目编号院系班级小组成员操作系统课程设计实验报告书页面置换算法之先进先出18信息科学与技术学院12级1班组长张海洋学号120xx004组员李奔学号120xx00520xx12311目录一课程设计任务划分3二...

设计模式实验报告(21篇)