计算机组成原理类乘指令,计算机组成原理模拟乘指令设计.doc

本篇报告详细介绍了在计算机组成原理课程中设计的ADM指令,用于计算n的阶乘。通过R6和R7寄存器存储数值,利用微指令实现循环控制,最终将结果存入DR。实验旨在理解微指令设计、寻址方式和指令扩展。测试结果显示存在与预期不符的情况,涉及跳转指令的选择和运算逻辑调整。
摘要由CSDN通过智能技术生成

计算机组成原理模拟乘指令设计

计算机科学学院

课程设计报告

课程 计算机组成原理

题目 ADM指令的设计

年级 2009级

专业 计算机科学与技术

学号 任课教师 汪红

2012年2月29日

课程设计题目ADM指令的设计验收

时间2012年2月29验收

地点9#307指导

教师汪红小组

成员具体分工备注兰伟东ADM DR指令设计及实施课题总体设计思想概述设计思想:

这条指令的设计是按照公式n!=n*n-1*n-2*..*2*1来进行设计的,指令设计的初定目标是利用R6的寄存器来进行存储n,同时在程序内部利用R1,R7来进行循环次数限制,在循环的时候每次循环R7都会减一,加到DR里面,一直循环到R7为0时Z标志位为1,作为依据跳出循环转入微地址30进行公操作。

实验平台:

基于TH-UNION的微程序仿真设计平台

Windows7系统 TEC2000教学机仿真软件

课题设

的和原理实验目的:

1、本次课题的设计题目是设计一条指令实现n!=n*n-1*n-2*..*2*1并存入DR功能。

2、通过本实验进一步了解微指令的设计方式和运行方式,指令寻址方式,指令的编排。

3、通过指令扩展设计实验来了解指令格式,指令的分类,与硬件之间的关系。实验原理:

通过微程序的操作码来设计入口地址,然后根据设定功能来设计微指令,并在微程序的最后转到30公操作。其中由于在微指令里面利用A口B口来进行数据的存取很方便,因此数据来源设定R6 R7, R7 R1为循环控制单位。课

案实验设计:

1、指令功能:ADM指令的设计功能为n!=n*n-1*n-2*..*2*1。

2、设计的指令格式:设计方案就是利用R9来进行存储,因此指令只需要一个操作数即DR来进行数据存储,助记符确定为DM,带一个操作数,因此对照TEC2000的16位机的指令类型表可知ADM的操作类型是23。

3、指令的操作码:指令内部用到的跳转是JRZ,即当Z=1的时候,微指令跳转到指定地点,因此设计指令的时候确定操作码的最后两位为10,所以操作码定为F2,入口确定为EF,该指令为单操作数指令,翻译为二进制显示IRXXX00000,XXXX为DR字段,由具体环境确定。

4、指令的规范:设计的时候要先确定两点,R6,R7里面存放数据,DR里面为0,指令简化为:F0将R6的数据减一到R6里面,F1将R9的值送到R8,F2将R7的数据减一到R7里面,F4将 R7的数据减一到R1,F5将R8+R9送到R9,F6是R1-1 →R1并置Z位,F7是判断Z标志位是否为0,为1的时候将跳转到F5,F9是将R6-1送到R6, FA判断Z标志位是否为0,为1的时候将跳转到F1这样程序就循环进行来进行阶乘。

5、微程序的执行流程图

0

设计的微指令机器码以及在ROM内的存储形式,设计的ROM包括从EF开始到FB结束

本次微程序的使用要求为R6,R7为M的存储寄存器,DR必须先置0,以R0为DR作为例子设计微程序的一段测试程序为:

案测试方案:

利用上述的测试程序和Rom来进行程序测定

1、导入设计好的ROM,并加载SCC_gal和监控程序

2、导入汇编程序和扩展指令的文件

3、交叉汇编出现成功,说明扩展指令的文件加载成功

4、单指令执行到ADM DR对应IR,然后单步执行查看指令的入口和循环是否出现问题

理论值:

本实验理论结果应为R0寄存器内存储000A数据 Z标志位置1

测试结果:

交叉汇编结果:

运行结果:

测试结果:R0内存储为0006 ,Z标志位为0与理论值相同

测试结果分析:DR字段在指令码里是R0,结果3*2*1=6所以R0=000A由于设置的R1 ,R 6作为循环控制,当R1,R6自减为0时,Z标志位置1,程序结束跳转到30转为公操作

析本次试验遇到的错误很少,基本都是关于指令的跳转问题:

1、由于JRNZ JRZ JRC JRNC的指令码都是一样的,这样在选择跳转的时候就是必须根据硬件来选择,这是询问老师获知,与操作码相关,这样就好设定了

2、运算的时候忽视了SST的功能,导致运算的时候CZ两个标志位无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值