基于Dais CMX16的计算机组成原理微程序课程设计
2016-12-19 20:15
1226 查看
计算机组成原理(微机原理)是计算机专业学生必修的一门课程,也是考研的专业课,这是一门研究计算机工作原理的课程,但理论知识掌握的再好,不能用到实际中也只是文字而已,因此,课程设计就是将理论结合实际的很好的一种方式(全是废话)。好的,说说本次的课程设计,首先,我所做的课程设计是在Dais CMX16 的16位模型机基础上实现的,地点是烟台大学,各个大学的课程设计可能稍有差别,但大体思路应该是一样的。
综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。
通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础
本实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从EM主存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
机器指令格式
其中OP-CODE为操作码段,位于指令字节高三位(IR7~IR5);第四位IR4是保留位,指定为零;低四位为源与目的寄存器地址,它们的编码见下表;Addr定义操作数或操作地址。
微指令格式
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。
设计八条机器指令:IN(输入)、ADD(十六进制加法)、SUB(减法)、MUL(乘法)、DIV(除法)、STA(置数)、OUT(输出)、JMP(无条件转移)。
其中IN为单字节(8位)指令,其余为三字节指令,XXXXXXXX XXXXXXXX为addr对应的二进制地址码,XXXX XXXX为立即数。
指令流程图
实验所用的机器指令
指令系统
微指令由于不是ASCII编码,所以就直接附下载链接了(点我下载)
设计目的
计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。
通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础
设计分析
实验原理本实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从EM主存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
机器指令格式
其中OP-CODE为操作码段,位于指令字节高三位(IR7~IR5);第四位IR4是保留位,指定为零;低四位为源与目的寄存器地址,它们的编码见下表;Addr定义操作数或操作地址。
微指令格式
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。
指令(程序)设计
指令系统设计八条机器指令:IN(输入)、ADD(十六进制加法)、SUB(减法)、MUL(乘法)、DIV(除法)、STA(置数)、OUT(输出)、JMP(无条件转移)。
其中IN为单字节(8位)指令,其余为三字节指令,XXXXXXXX XXXXXXXX为addr对应的二进制地址码,XXXX XXXX为立即数。
指令流程图
实验所用的机器指令
指令系统
源程序及微指令
;基本模型机程序 #LOAD "InstructionSys.IS" ;预调入指令系统/微程序 #SET RAM 0260H = 1100h;数据区0260H单元预置数据1100h data segment ;将程序装载到数据存储器 assume ds:data org 0 start: in r0, iol ;将IO低位送到R0 add r0, 0260h ;将R0的内容与内存0260单元的内容相加,送回R0 sub r0,0260h ;将R0的内容与内存0260单元的内容相减,送回R0 mul 0203h ;立即数02和03,将02和03相乘送到R1 sta 01ffh,ioh ;将FF00送到IO div 0204h ;将立即数04除以立即数02送到R2 out ioh, 0260h ;将内存0260单元的内容输出到IO jmp 0000h ;将PC的内容置零,返回第一条机器指令 data ends end start
微指令由于不是ASCII编码,所以就直接附下载链接了(点我下载)