计算机组成原理课程设计报告(指令设计)
- 格式:doc
- 大小:259.50 KB
- 文档页数:7
计算机科学学院课程设计报告
课程计算机组成原理
题目用户输入数据的阶加
年级2009级
专业计算机科学与技术
学号学生
任课教师
2012 年月日
课程设计
题目
用户输入数据的阶加验
收时间2012年2月28日
验收
地点
指导
教师
小
组
成
员
具体分工备注
无
课
题总体设计思想概述
在TEC-2000教学计算机仿真软件系统的PC机上,用已有基本指令,运用已经掌握的指令格式、指令操作码编码、寻址方式和指令功能等基本内容,以及教学计算机总体组成和各部件的运行原理,完成扩展新的指令,使新指令能够在教学机上运行。
设计出新扩展指令的微程序段,合理安排到已有基本指令的微程序中。
课题设计目的和原理
实验目的:
(1)进一步熟悉教学计算机指令格式、指令编码、寻址方式和指令功能;
(2)进一步熟悉教学计算机的总体组成和各部件的运行原理,理解指令的执行过程;
(3)通过对指令系统的扩展,了解微程序控制器设计和实现的基本过程;
(4)思考和讨论微程序控制器的特点并与组合逻辑控制器进行比较。
实验原理:
指令由微控制命令组成,可以通过微地址找到。通过更改下址可以把微程序串联起来。通过封装组合把一段微程序写成一条扩展的新微指令。
课题设计方案实验方案设计:
(一)根据题目内容,把题目转化成数学公式为:N+(N-1)+(N-2)+ (1)
这个指令要求的指令之外首先把N的值放入r0寄存器中,结果也在r0中。(二)实现N+(N-1)+(N-2)+···+1此计数公式的汇编程序为:
org 2000h
push r8
push r14
mvrd r0,X (X为用户自定义的数)
mvrd r8,X
mvrr r14,r5
h:
dec r8
add r0,r8
jrnz h
pop r8
pop r14
ret
end
(三)把以上程序封装在设置好的扩展指令中,扩展指令为zxd 00111001 46扩展指令的入口地址为38。
(四)根据扩展指令,修改好的新ROM地址单元,如下示:
(五) 生成新的ROM 文件,并保存。 (六) 微址、下址以及功能说明表: 微址 下址 功能说明
38 39 SP-1→SP,AR 将r8寄存器的值入栈 39 40 SR →MEM
40 41 SP-1→SP,AR 将r14寄存器的值入栈 41 42 SR →MEM 42 43 MVRD DR DATA 43 44 给r0赋值 44 45 给r8赋值
45 46 使r8的值减一,以实现控制循环的次数 46 47 将PC 即r5(程序计数器)的值存入r14
47 51 跳转指令 如果r8的值>0则顺序向下执行,否则跳转至51 48 49 跳转指令 如果r8的值>0则顺序向下执行 49 50 ADD DR,SR 加运算,r0+r8→r0
50 45 还原PC 即r5寄存器的值(即把r14的值给r5) 51 52 POP DR 出栈 还原r8寄存器的值
52 53
53 54 POP DR 出栈 还原r14寄存器的值
54 30
课 题 设 计 方 案
课题测试方案测试方案:
(一)、导入准备好的MAPROM、ROM1~ROM7共8个二进制ROM文件后,装入设计的微程序方案。
(二)、导入如下汇编文件:
org 2000h
mvrd r8,8h
mvrd r14,8h
zxd r0,5h
ret
end
(三)、在仿真软件的菜单栏→选项→参数设置中输入扩展指令的文件名地址:zhang.asm
(四)、点击界面左上方的“交叉汇编”,进行交叉汇编得到:07D0:mvrd r8, 8h
07D2:mvrd r14, 8h
07D4:zxd r0, 5h
07D6:ret
(五)、点击Reset加电启动,准备执行导入的程序
(六)、进行单步执行,每次执行一条微指令,观察当前微地址项和各寄存器中值的变化以及标志位、指令等的情况并记录下来;也可点击“连续执行”直接得到结果。
错误及结果分析实验过程中遇到的错误以及解决方案:
跳转指令修改之后,循环执行完成后不能正确执行下一条指令,程序陷入死循环。解决方案:上一条有效的译码指令执行之后就保存PC的值(即先把PC的值保存在r14寄存器中),在下一条指令执行之前提取PC的值(即把原先保存的值,r14的值再还原给PC)。
实验结果分析:
条件
结果
理论值实测值R0=0005h 000Fh 000Fh
R8=0008h 0008h 0008h
R14=0008h 0008h 0008h 实验结果完全正确,符合预期效果。
课题设计心得
在做实验的时候,首先接触的是这个仿真软件,经过身边同学的演示和讲解,就基本明白了这个仿真平台是如何使用的。
在进行自己的设计的时候,开始十分茫然,不知如后下手,从那下手,通过观察,别的同学做的过程,自己也就渐渐明白该如何做了。在设计自己的实验指令的时候遇到了许许多多的小问题,通过与同学探讨,逐渐就明白了实验设计的所需的真正内容了,因此自己的课程设计就变得很明了,做起来就顺手许多。
通过此次实验,加深了我对各种指令的认识,了解了指令系统的扩展操作,以及微程序控制器设计与实现的基本过程,丰富了我的知识。通过实验,我有加深了对计算机组成原理知识的理解,加强了对这些知识的应用。但是也遇到了很多的问题,在发现问题和解决问题的过程中,我得到了知识的拓展与提高。虽然本次课程设计自己做的东西不算是很复杂,但是这是我努力认真学习后完成的成果,自己收获很多。