《计算机组成原理设计报告.doc》由会员分享,可在线阅读,更多相关《计算机组成原理设计报告.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机组成原理课程设计报告 课程设计题目:微程序设计 学 号:姓 名:专 业:班 级:指导教师: 2012年 6月 27日目录1.实验题目.32.实验时间.33.实验地点.34.实验目的.35.实验装置组成.36.指令系统汇编.97.主要代码及结果.128.试验程序样例.149.实验小结.18一、 实验题目:1、运用模型机指令系统编写程序完成20以内的奇数和偶数相加之和,将结果存放在指定的存储器单元中。2、编写程序将56和78两个数的各位相互组合成不同的数,存放到存储器中。(如57、58、76、85、86等)例程1给R0、R1、R2、R3各赋一初值,然后对它们进行一系列算术/逻辑运算,观察各寄
2、存器的变化情况。例程2给R0、R1、R2、R3各赋一初值,然后对它们同立即数进行一系列算术/逻辑运算,观察各寄存器的变化情况。例程3给R0、R1、R2、R3各赋一初值,然后对它们进行一系列移位循环操作,观察各寄存器的变化情况。二、 实验时间:2012年6月25日到2012年6月28日三、 实验地点:信工楼309四、 实验目的:1、熟悉本模型机的指令系统,理解各条指令的功能和用途。2、打开实验例程,熟悉软件操作,根据程序执行流程观察寄存器和存储器单元的变化情况,连接串行口连通模型机,观察模型机中数据流向和程序执行的同步情况。3、利用本模型机的指令系统,自行编制一些小的程序,调试并运行。五、 实验
3、装置组成:(一)硬件部分实验装置是为计算机组成原理的工作流程专门设计的。它能够让学生通过手动和自动的操作弄清和掌握计算机工作的基本原理。实验模块由手动实验部分和程序实验部分组成。手动实验主要完成计算机各个组成部分的原理实验,包括数据流程、运算器执行、存储器和外设之间的数据交换等部分,通过组合变化各个输入信号,进一步理解计算机各个部件的执行过程和工作原理,手动实验在本指导书的前面部分已经作了详细介绍。程序实验主要包括:数据传输程序各种运算程序控制转移程序数码转换程序(二)软件部分软件系统由编辑程序、编译程序、程序执行、调式程序几个部分组成,完成由源程序输入、语法分析排错、指令汇编、应用程序调试的
4、全过程。软件系统采用集成化的窗口,各种软件功能分类设置在程序中,可以根据程序实验过程的需要随意组合使用。软件系统的主窗口界面如下图所示:图1 软件系统主窗口界面二、软件使用说明(一)界面说明图2 界面说明标识软件系统采用集成化的窗口,各种软件功能分类设置在程序中,软件系统的主窗口界面如上图所示,现将界面各组成部位说明如下:1 寄存器 在程序执行过程中,观察各寄存器的值2 存储器 在程序执行过程中,观察各存储器的值3 信息 显示当前指令对应的微程序4 编辑源程序 从汇编状态或运行状态返回到编辑源程序状态5 汇编 对编辑好的源程序进行汇编连接6 程序复位 让程序指针指向程序的第一条指令7 运行 运
5、行已通过汇编连接的程序8 停止 停止程序的运行9 单步 单步运行程序(逐条指令执行)10 单拍 单拍运行程序(逐条微指令执行)11 设置/取消断点 设置/取消断点,调试程序时用12 连接/断开串行口 连接/断开串行口,连通/断开程序和模型机通信13 源程序编辑区 在该区域内编辑源程序14 寄存器/存储器显示区显示各寄存器/存储器的值15 微程序显示区 显示当前指令对应的微程序(二)编辑程序编辑源程序采用文本的编辑方式,按照给定的模型机指令系统,用汇编语言格式编辑程序,对所编辑的程序进行语法分析,纠错处理。编辑程序主要实现如下的操作流程:图3 编辑源程序流程图4 新建编辑窗口(三)汇编程序汇编程
6、序先对源程序进行语法检查,排除源程序中的语法错误,再将源程序编译为机器码,在调试的窗口中显示指令行、机器码、助记符等信息。图5 汇编出错提示信息图6 内存地址、助记符和机器码(四)运行方式程序的运行有单拍、单步和连续执行三种方式。单拍方式是逐条执行微程序中的微指令,屏幕显示信息(微指令、积存器和存储器状态)与实验板显示信息(微指令对应的数据流向以及相应的控制信号)互相配合,可以将单拍微指令执行的结果从不同角度显示出来,以便观察。单步方式是一条一条指令执行的过程,每条指令执行后,将内存和寄存器中的变化显示出来。连续执行将一段程序执行的功能表现出来,在连续执行调试中可以采用设置断点的方法,分模块或
7、分段地进行程序调试。(五)跟踪调试程序执行的调试方法可按调试的目的考虑,一般有以下几种情况:(1)为了掌握一般指令执行过程。采用单拍和单步,结合实验板观察有关的变化。图7 单拍或单步运行(2)为观察寄存器的变化。采用单步和连续执行,打开寄存器窗口观察寄存器变化。图8 观察寄存器变化(3)为了观察内存的变化。采用单步和连续执行,打开内存窗口观察内存变化。图9 观察存储器变化(4)为了调试一段条件转移程序。可以在不同转移目标点设置断点,观察其转移情况。图10 设置断点六、指令系统汇编(一)模型机指令系统序号类型汇编助记符指令格式指令状态位注 释操作码源目第二字节长度1算逻运算 一类ADD RD,R
8、S0001RSRD1Z,C,E,V,NRD(RD)+(RS)2ADC RD,RS0010RSRD1Z,C,E,V,NRD(RD)+(RS)+CY3SUB RD,RS0011RSRD1Z,C,E,V,NRD(RD)-(RS)4SBC RD,RS0100RSRD1Z,C,E,V,NRD(RD)-(RS)-CY5MUL RD,RS0101RSRD1Z,C,E,V,NRD(RD)*(RS)6AND RD,RS0110RSRD1ZRD(RD)and(RS)7OR RD,RS0111RSRD1ZRD(RD)or(RS)89算逻运算 二类ADD RD,#IMM#IMMRD#IMM2Z,C,E,V,NRD(R
9、D)+#IMM10ADC RD,#IMM#IMMRD#IMM2Z,C,E,V,NRD(RD)+#IMM+CY11SUB RD,#IMM#IMMRD#IMM2Z,C,E,V,NRD(RD)-#IMM12SBC RD,#IMM#IMMRD#IMM2Z,C,E,V,NRD(RD)-#IMM-CY13CMP RD,#IMM#IMMRD#IMM2Z,C,E,V,NPWS(RD)-#IMM,比较不改变寄存器14AND RD,#IMM#IMMRD#IMM2ZRD(RD)AND #IMM15OR RD,#IMM#IMMRD#IMM2ZRD(RD) OR #IMM16MOV RD,#IMM#IMMRD#IMM2
10、ZRD-#IMM1718移位循环 三类SRR RD RD1Z,C右一位,带进位位循环19SRL RD RD1Z,C左一位,带进位位20CLR RDRD1Z清零21COM RDRD1Z,C取反操作22INC RDRD1ZRDRD+123DEC RDRD1ZRDRD-1242526传数类指令 四类LD RD,MEMRDMEM2直接寻址,RDMEM27ST MEM,RSRSMEM1直接寻址,MEMRS28LD RD,(MEM)RDMEM2间接寻址,RD(MEM)29ST (MEM),RSRSMEM2间接寻址,(MEM)RS30IN RD,PORTRDPORT2将数据输入接口输入到RD31OUT PO
11、RT,RSRSPORT2将RS数据输出到数据接口32MOV RD,RSRDR01寄存器寻址,RD(R0)3334转移类指令 五类JNZ ADDRADDR2结果不为零,转移35JZ ADDRADDR2结果为零,转移36JNC ADDRADDR2进位不为零,转移37JC ADDRADDR2进位为零,转移38JNE ADDRADDR2不等,转移39JE ADDRADDR2相等,转移40JO ADDRADDR2溢出,转移41JNO ADDRADDR2溢出,转移4243JMP ADDRADDR2转移44其它4546NOP空操作474849HALT停机操作(二)模型机指令码1、指令码一类76543210
12、双寄存器运算操作码源寄存器的寄存器ADDADCSUBSBC0xxxrsrdMULANDMULMOV二类其他指令76543210操作码的寄存器SHRSRLROLRCR100XXXrdDECINCPUSHPOP 三类寄存器与立即数运算76543210操作码的寄存器ADDADCSUBSBC101XXXrdCMPANDORMOVIMM四类传数类指令76543210操作码的寄存器MOVMOVMOVMOV110XXXrdINOUT(MEM) / (MEM)五类转移类指令76543210操作码JNZJNCJNEJNVDISP111XXXXXJZJCJEJVADDRDISP / ADDRCALLJMPJMPH
13、ALTNOP2、寄存器和状态位说明序号rd,rs寄存器名100R0状态位(PWS)7654210201R1NEVCZ310R2负数等溢出进位零411R33、数据格式7654210#IMM,DISP相对转移符号尾数七、主要代码及结果1、运用模型机指令系统编写程序完成20以内的奇数和偶数相加之和,将结果存放在指定的存储器单元中。 MOV R2,#0H MOV R3,#0H MOV R0,#0H L1: ADD R0,#01H MOV R1,R2 ADD R1,#01H CMP R1,#00H JZ L2 ADD R3,R0 JMP L3 L2: ADD R2,R0 L3: CMP R0,#14H
14、JNZ L1 L4: JMP L4实验结果:2、编写程序将56和78两个数的各位相互组合成不同的数,存放到存储器中。(如57、58、76、85、86等) 主要代码: MOV R0,#56HMOV R1,#78HMOV R2,R0MOV R3,R1ADD R0,#0F0HADD R1,#0FHADD R0,R1AND R2,#0FHADD R3,#0F0H ADD R3,R2实验结果:八、试验程序样例例程1给R0、R1、R2、R3各赋一初值,然后对它们进行一系列算术/逻辑运算,观察各寄存器的变化情况。Exmp1.asmMOV R0,#05HMOV R1,#06HMOV R2,#07HMOV R3
15、,#08HADD R1,R0SUB R1,R2MUL R2,R3AND R3,R1OR R2,R0L1:JMP L1结果:例程2给R0、R1、R2、R3各赋一初值,然后对它们同立即数进行一系列算术/逻辑运算,观察各寄存器的变化情况。Exmp2.asmMOV R0,#0FEHMOV R1,#06HMOV R2,#07HMOV R3,#08HADD R0,#05HADC R3,R2SUB R3,#02HAND R3,#66HOR R1,#0F9HL1:JMP L1结果:例程3给R0、R1、R2、R3各赋一初值,然后对它们进行一系列移位循环操作,观察各寄存器的变化情况。Exmp3.asmMOV R0
16、,#05HMOV R1,#06HMOV R2,#07HMOV R3,#08HSRR R0SRL R1CLR R2COM R3INC R2DEC R1L1:JMP L1结果:九、实验小结 经过一周的组成原理课程设计,让我深刻体会到,学习的时光很短,只有不断加强自己的知识水平,才能在较短时间内完成课程设计的要求。同时,也在实验中感受到学习的无限乐趣,在老师的指导及同学的讨论中收获颇丰。本次课程设计中,我进一步掌握了微程序的设计方法,对取目的操作数程序设计及单操作指令程序有了进一步掌握。在每天的实验中,总会有些问题,是在平时的学习中没有发现的。为此,我在通过仔细的研究课本及向老师提问,拓宽了自己的知识面。同时也感受实践对于我们这门学科的重要性。同时,在经过老师的检查后发现自己在前面的实验中有些疏忽的问题。课程设计很快就结束了,但这并不意味着我们已将这门课程掌握透彻,在实验中有些未及时完成的指令,都需要我在课后认真思考,并不断充实自己,深化自己对书本的理解以便将遗留问题全部解决。