计算机组成原理课程设计2汇编.docx
《计算机组成原理课程设计2汇编.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计2汇编.docx(19页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计2汇编
安徽理工大学
课程设计说明书
题目:
利用数组的加法实现累加
院系:
计算机科学与技术系
专业班级:
学号:
学生姓名:
指导教师:
2016年6月17日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院物联网工程系
学号
2014302854
学生姓名
王召露
专业(班级)
物联网14-1班
设计题目
基本模型机
设
计
技
术
参
数
1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱上实现指令系统。
2.利用软件工程中的可行性研究以及分析方法,进行系统分析。
设
计
要
求
1在基本模型机的基础上构建一组能实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移指令等8个功能的指令,这些指令的助记符不得与指导书上相同。
2.指令包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。
3.利用新构建的指令系统编程,分别实现求数组元素之和功能。
工
作
量
1.课程设计说明书2000字以上;
2.画出流程图,编写微指令代码和程序。
(1)设计的目的及设计原理。
(2)根据设计要求给出模型机的逻辑框图。
(3)设计指令系统,并分析指令格式。
(4)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。
(5)模型机当中时序的设计安排。
(6)设计指令执行流程。
工
作
计
划
1.首先认真研究老师所给的题目,了解题目要求做什么。
2.查阅资料,解决难题。
3.编写源程序并调试之。
4.写课程设计说明书
参
考
资
料
[1]张昆藏.计算机系统结构.北京:
科学出版社,1994
[2]著平玲娣,潘雪增《计算机组成与设计》浙江大学出版社,出版日期:
2004-1-1
[3]白中英.计算机组成原理(第五版).北京:
科学出版社,1998
[4]DJ-CPTH超强型计算机组成原理与系统结构实验指导书
指导教师签字
教研室主任签字
年月日
安徽理工大学课程设计(论文)成绩评定表
指导教师评语:
成绩:
指导教师:
年月日
指导教师评语:
成绩:
指导教师:
年月日
摘要
在现如今飞速发展的第三次信息化革命中,计算机被应用到各行各业,各个领域中。
随着计算机的深入发展,人们逐渐步入自动化智能化的生活阶段。
“计算机组成原理”是计算机科学与技术系的一门核心专业基础课程,在计算机专业中起到很重要的作用。
本次课程设计通过对一个简单模型机的设计与实现,是我们对计算机的基本组成、部件的设计、部件间的连接有更深的理解,利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,编写指令的应用程序,用微程序控制器实现一系列的指令功能最终达到将理论与实践相结合。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有实现同或功能的应用程序。
本次计算机组成原理课程设计是基本模型机的设计与实现,利用CPU与简单模型机来实现计算机组成原理课程及实验中所学的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系,本次设计完成了各指令的格式以及编码的设计,实现了加法指令,形成具有一定功能的完整的应用程序。
部件实验过程中,各部件单元的控制信号是人为手动模拟输入的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器(RAM)中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计以下几个控制台操作微程序:
WIN(输入),WMOV(传送),WAND(逻辑与),WOR(逻辑或),WNOT(逻辑非),WOUT(输出),WSUB(减),WJMPC(有进位跳转),WJMP(无条件跳转)。
以上各微指令设计完毕后,连接线路在DJ-CPTH超强型计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
关键词:
指令系统,寻址方式,算数逻辑运算
Abstract
Intoday'srapiddevelopmentofthethirdinformationrevolution,thecomputerisappliedtoallwalksoflife,inallfields.Withthedevelopmentofcomputer,peoplegraduallystepintothelifestageofautomationandintelligence.Computercompositionprincipleisacorecourseofcomputerscienceandtechnology,whichplaysanimportantroleincomputerscience.Throughthecurriculumdesignofasimplemodeldesignandimplementation,weoncomputerbasiccomposition,componentdesign,componentconnectionhaveadeeperunderstandinganduseofCPUandsimplemodeltorealizethecomputercompositionprinciplecourseandexperimenthavelearnedexperimentalprincipleandprogrammingideasandapplicationsofwritinginstructions,microprogramcontrollertoachieveaseriesofinstructionswhichwilleventuallytothecombinationoftheoryandpractice.Thedesigncompletedtheformatofeachinstructionandthedesignofthecode,therealizationofthevariousmachineinstructionsmicrocode,withtherealizationofthefunctionoftherealizationoftheapplication.
本次计算机组成原理课程设计是基本模型机的设计与实现,利用CPU与简单模型机来实现计算机组成原理课程及实验中所学的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系,本次设计完成了各指令的格式以及编码的设计,实现了加法指令,形成具有一定功能的完整的应用程序。
Thecomputercompositionprincipleofcurriculumdesignisthebasicmodelofmachinedesignandimplementation,usingtheCPUandsimplemodeltorealizethecomputercompositionprinciplecourseandexperimentintheexperimentalprincipleandprogrammingideas,self-madehardware,applicationswritteninstructions,microprogramcontrollerrealizesthefunctionsofaseriesofinstructions,andultimatelyachievelinkingtheoryandpractice,thedesigncompletedthecommandoftheformatandcodedesign,realizationoftheaddinstruction,theformationofcompleteapplicationswithcertainfunction.部件实验过程中,各部件单元的控制信号是人为手动模拟输入的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器(RAM)中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计以下几个控制台操作微程序:
WIN(输入),WMOV(传送),WAND(逻辑与),WOR(逻辑或),WNOT(逻辑非),WOUT(输出),WSUB(减),WJMPC(有进位跳转),WJMP(无条件跳转)。
以上各微指令设计完毕后,连接线路在DJ-CPTH超强型计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
Componentsinthecourseoftheexperiment,eachcomponentelementofthecontrolsignalisinputofmanualsimulation,thecurriculumdesignwillbeabletoautomaticallygeneratecontrolsignalofeachunitunderthemicroprogramcontrol,toachievethefunctionofspecificinstructions,throughthedesignflowchart,writemachineinstructions,microreferstoorderandcontrolsignal.First,loaddataandprogramsintothememory(RAM),andthencheckwhetherthewriteiscorrect,starttheprogramexecution.Inaddition,theneedtodesignfollowingconsolemicrooperationprocedures:
win(input),WMOV(transport),wand(logicaland),wor(logicalor),WNOT(nonlogical).WOUT(output).WSUB(minus),WJMPCcarryjump,WJMP(unconditionaljump).Theabovemicroinstructiondesigniscompleted,theconnectionlineintheDJ-CPTHsupercomputercompositionprincipleteachingexperimentboxoperationprocedure,andtheexperimentalresultsshowthattheoutput.
Keywords:
Instructionsystem,addressingmode,arithmeticlogicoperation
目录
1.设计背景
1.1模型机指令集分析1
1.2模型机寻址方式分析3
2.设计目标4
3、设计思想5
4、详细设计5
4.1指令集设计4
4.2功能模块分析4
4.3程序流程图4
5、调试结果及分析5
5.1程序系统分析
5.2程序测试微指令5
5.3调试结果8
6、设计总结12
6.1系统评价12
6.2解决问题12
参考文献
1.设计背景
1.1模型机指令集分析
本次课程设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的。
该模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。
在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。
在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。
总之,在这次设计中,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。
24位控制位分别介绍如下:
XRD:
外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号
EMRD:
程序存储器EM读信号
PCOE:
将程序计数器PC的值送到地址总线ABUS上
EMEN:
将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS
IREN:
将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里
STEN:
将数据总线DBUS上数据存到堆栈寄存器里
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位
FEN:
将标志位存入ALU内部的标志寄存器
X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1-1
WEN:
将数据总线DBUS的值打入工作寄存器W中
AEN:
将数据总线DBUS的值打入累加器A中
S2,S1,S0三位组合决定ALU做何种运算,见表1-2
表1-1寄存器选择控制表
X2X1X0
输出寄存器
000
IN_OE外部输入门
001
IA_OE中断向量
010
ST_OE堆栈寄存器
011
PC_OEPC寄存器
100
D_OE直通门
101
R_OE右移门
110
L_OE左移门
111
没有输出
表1-2运算器功能控制
S2S1S0
功能
000
A+W加
001
A-W减
010
A|W或
011
A&W与
100
A+W+C带进位加
101
A-W-C带进位减
110
~AA取反
111
A输出A
1.2模型机寻址方式分析
模型机的寻址方式分五种:
(1)累加器寻址:
操作数为累加器A,例如“CPLA”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。
(2)寄存器寻址:
参与运算的数据在R0-R3的寄存器中,例如“ADDA,R0”指令是将寄存器R0的值加上累加器A的值,再存入累加器A中。
(3)存储器直接寻址:
参与运算的数据在存储器EM中,数据的地址为指令的操作数。
例如“ANDA,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。
(4)立即数寻址:
参与运算的数据为指令的操作数。
例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。
(5)寄存器间接寻址:
参与运算的数据为指令的操作数。
例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。
模型机的缺省的指令集分为几大类:
算数运算指令,逻辑运算指令,移位指令,数据传输指令,跳转指令,中断返回指令,输入输出指令。
2.设计目标
根据老师提出的问题,可以写出如下几点目标,并且尽力去实现:
a.在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计机。
b.为其定义机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
c.掌握微程序控制器的组成原理。
d.掌握微程序的编写、写入,观察微程序的运行。
e.本课程设计要求实现机器指令:
输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移指令等CPU程序,通过实验箱调试。
要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
最后要在设计的指令系统基础上,编写程序实现数组求和的功能。
3、设计思想
在现如今飞速发展的第三次信息化革命中,计算机被应用到各行各业,各个领域中。
随着计算机的深入发展,人们逐渐步入自动化智能化的生活阶段。
“计算机组成原理”是计算机科学与技术系的一门核心专业基础课程,在计算机专业中起到很重要的作用。
首先选好自己用的助记符,根据助记符,根据计算机组成原理课程设计的要求设计好指令集和其对应的微指令程序。
本次课程设计通过对一个简单模型机的设计与实现,是我们对计算机的基本组成、部件的设计、部件间的连接有更深的理解,利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,编写指令的应用程序,用微程序控制器实现一系列的指令功能最终达到将理论与实践相结合。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有实现同或功能的应用程序。
根据设计出来的指令集与任务书的要求写出微程序,并在自己设计出来的指令集基础上进行测试。
我设计的微程序思想如下:
先把数存进数据寄存器中,对其中的数进行加减运算。
这些得到的数进行重新组成一个数组,然后对它们进行与或非的运算。
随之组成一个新的数组,然后选出这个数组中的一个数进行从一到这个数的累加,然后得到结果进行输出。
本次计算机组成原理课程设计是基本模型机的设计与实现,利用CPU与简单模型机来实现计算机组成原理课程及实验中所学的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系,本次设计完成了各指令的格式以及编码的设计,实现了加法指令,形成具有一定功能的完整的应用程序。
部件实验过程中,各部件单元的控制信号是人为手动模拟输入的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器(RAM)中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计以下几个控制台操作微程序:
WIN(输入),WMOV(传送),WAND(逻辑与),WOR(逻辑或),WNOT(逻辑非),WOUT(输出),WSUB(减),WJMPC(有进位跳转),WJMP(无条件跳转)。
以上各微指令设计完毕后,连接线路在DJ-CPTH超强型计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
4.详细设计
4.1指令集设计
根据各族所需要设计指令集,如图所示
表4-1指令集设计
助记符
机器码
注释
SADD A,R?
0000100xx10-13
将寄存器的值加入累加器A中
SADDA,@R?
000100xx 14-17
将间址存储器的值加入累加器A中
SADDA,*
000110 18-18
将存储器 地址的值加入累加器A中
SADDA,#*
000111xx 1C-1F
将立即数加入累加器A中
SADDCA,R?
001000xx 20-23
将寄存器R?
的值加入累加器A中,带进位
SADDCA,@R?
001001xx 24-27
将间址寄存器的值加入累加器A中,带进位
SADDCA,*
001010xx 28-28
将存储器地址的值加入累加器A中,带进位
SADDCA,#*
001010xx 2C-2F
将立即数加入累加器A中,带进位
SSUBA,R?
001100xx 30-33
从累加器A中减去寄存器R?
的值
SSUBA,@R?
001100xx 34-37
从累加器A中减去存储器地址的值
SSUBA,*
001110xx 38-38
从累加器中减去存储器地址的值
SSUBA,#*
001111xx 3C-3F
从累加器A中减去立即数加入累加器A中
SSUBCA,R?
010000xx40-43
从累加器A中减去寄存器R?
值,减进位
SSUBCA,@R?
010001xx44-47
从累加器A中减去间址存储器的值,减进位
SSUBCA,*
010010xx 48-48
从累加器A中减去存储器地址的值,减进位
SSUBCA,#*
010011xx 4C-4F
从累加器A中减去立即数,减进位
SANDA,R?
010100xx 50-53
累加器A与寄存器R?
的值
SANDA,@R?
010101xx 5457
累加器A与间址存储器的值
SANDA,*
010110xx 58-58
累加器A与存储器地址的值
SANDA,#*
010111xx 5C-5F
累加器A与立即数
SORA,@R?
011000xx 60-63
累加器或寄存器R?
的值
SORA,@R?
011001xx 64-67
累加器A或间址存储器的值
SORA,*
011010xx 68-6B
累加器A或存储器地址的值
SORA,#*
011011xx6C-6F
累加器A或立即数
SMOVA,R?
011100xx70-73
将寄存器R?
的值送到累加器A中
SMOVA,@R?
011101xx74-77
将间址存储器的值送到累加器A中
SMOVA,*
011110xx78-7B
将存储器地址的值送到累加器A中
SMOVA,#*
011111xx7C-7F
将立即数送到累加器A中
SMOVR?
A
100000xx80-83
将累加器A的值送到寄存器中
SMOV@R?
A
100001xx84-87
将累加器A的值送到间址寄存器中
SMOV*,A
100010xx88-8B
将累加器A的值送到存储器地址中
SMOVR?
#*
1000011xx8C-8F
将立即数送到寄存器R?
中
WSREADA,*
100100xx90-93
从外部地址读入数据,存入累加器A中
SWRITE*,A
100101xx