计算机组成原理课程设计报告,乘法,除法,子函数编程思想

上传人:第*** 文档编号:57172074 上传时间:2018-10-19 格式:DOC 页数:27 大小:827KB
返回 下载 相关 举报
计算机组成原理课程设计报告,乘法,除法,子函数编程思想_第1页
第1页 / 共27页
计算机组成原理课程设计报告,乘法,除法,子函数编程思想_第2页
第2页 / 共27页
计算机组成原理课程设计报告,乘法,除法,子函数编程思想_第3页
第3页 / 共27页
计算机组成原理课程设计报告,乘法,除法,子函数编程思想_第4页
第4页 / 共27页
计算机组成原理课程设计报告,乘法,除法,子函数编程思想_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《计算机组成原理课程设计报告,乘法,除法,子函数编程思想》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告,乘法,除法,子函数编程思想(27页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课程设计报告课程名称:课程名称:计算机组成原理课程设计计算机组成原理课程设计实验项目:实验项目:用微指令实现乘法和除法的程序用微指令实现乘法和除法的程序姓姓 名:名:刘斌刘斌专专 业:业:计算机科学与技术计算机科学与技术班班 级:级:计算机计算机 14-6 班班学学 号:号:计算机科学与技术学院计算机科学与技术学院 实验教学中心实验教学中心成绩:2016 年 9 月 1 日设计项目名称:设计项目名称:用微指令实现乘法和除法的程序用微指令实现乘法和除法的程序(2 2 学时)学时)一.设计目的1在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基

2、本方法并了解指令系统与硬件结构的对应关系;2通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;3培养综合实践及独立分析、解决问题的能力。二.设计内容针对 COP2000 实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在 COP2000 的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。三.使用仪器1硬件COP2000 实验仪PC 机2软件COP2000 仿真软件3辅助COP2000 计算机组成原理实验仪说明书。四.设计步骤1知识储备1.1掌握计算机组成原理相关知识1.

3、2掌握 COP 2000 模型机的微程序控制器原理。1.3掌握有关计算机中实现乘法和除法的算法流程与相应的硬件实现原理。2熟悉实验环境2.1熟悉 COP2000 仿真软件2.2将 1.3 中算法与 COP2000 实验仪的硬件资源相对应3分步设计指令系统并逐步验证3.1设计“数据移动”相关指令,并写程序验证功能3.2设计“加减法”相关指令,并写程序验证功能3.3设计“整数移位”相关指令,并写程序验证功能3.4设计“跳转”相关指令,并写程序验证功能3.5设计“调用子函数”相关指令,并写程序验证功能4设计乘除法,同时验证指令系统的整体功能4.1乘法算法设计,并用全新的指令系统实现,验证程序正确性的

4、同时验证指令系统的正确性。4.2除法算法设计,并用全新的指令系统实现,验证程序正确性的同时验证指令系统的正确性。五.微程序设计指令原理该模型机指令系统的特点:1.总体概述COP2000 模型机包括了一个标准 CPU 所具备所有部件,这些部件包括:运算器 ALU、累加器 A、工作寄存器 W、左移门 L、直通门 D、右移门 R、寄存器组 R0-R3、程序计数器 PC、地址寄存器 MAR、堆栈寄存器 ST、中断向量寄存器 IA、输入端口 IN、输出端口寄存器OUT、程序存储器 EM、指令寄存器 IR、微程序计数器 uPC、微程序存储器 uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以

5、及跳转控制电路用 CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。模型机为 8 位机,数据总线、地址总线都为 8 位,但其工作原理与 16 位机相同。相比而言 8 位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。模型机的指令码为 8 位,根据指令类型的不同,可以有 0 到 2 个操作数。指令码的最低两位用来选择 R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,

6、每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有 24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。模型机的缺省的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。2模型机的寻址方式表 1 模型机的寻址方式模型机的寻址方式寻址方式说明指令举例 指令说明操作数为累加器 ACPL A将累加器 A 的值取反累加器寻址 隐含寻址累加器 AOUT将累加器 A 的值输出到输出端口寄存器OUT寄存器寻址参与运算的数据在R0R3 的寄存器中ADD A,R0将寄存器 R0 的值加上累加器 A 的值,再存入累加器

7、A 中寄存器间接寻址参与运算的数据在存储器 EM 中,数据的地址在寄存器 R0-R3 中MOV A,R1将寄存器 R1 的值作为地址,把存储器 EM中该地址的内容送入累加器 A 中存储器直接寻址参与运算的数据在存储器 EM 中,数据的地址为指令的操作数。AND A,40H将存储器 EM 中 40H单元的数据与累加器A 的值作逻辑与运算,结果存入累加器 A立即数寻址参与运算的数据为指令的操作数。SUB A,#10H从累加器 A 中减去立即数 10H,结果存入累加器 A该模型机微指令系统的特点(包括其微指令格式的说明等):该模型机的微命令是以直接表示法进行编码的,其特点是操作控制字段中的每一位代表

8、一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。3微指令格式的说明模型机有 24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。微程序控制器由微程序给出 24 位控制信号,而微程序的地址又是由指令码提供的,也就是说 24 位控制信号是由指令码确定的。该模型机的微指令的长度为 24 位,其中微指令中只含有微命令字段,没有微地址字段。其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址则由指令码指定。这 24 位操作控制信号的功能如表2 所示:(按控制信号从左到右的顺序依次说明)表 2 微指令

9、控制信号的功能操作控制信号控 制 信 号 的 说 明XRD外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。EMWR程序存储器 EM 写信号。EMRD程序存储器 EM 读信号。PCOE将程序计数器 PC 的值送到地址总线 ABUS 上。EMEN将程序存储器 EM 与数据总线 DBUS 接通,由 EMWR 和 EMRD 决定是将 DBUS 数据写到 EM 中,还是从 EM 读出数据送到 DBUS。IREN将程序存储器 EM 读出的数据打入指令寄存器 IR 和微指令计数器PC。EINT中断返回时清除中断响应和中断请求标志,便于下次中断。ELPPC 打入允许,与指令寄存器的 IR3

10、、IR2 位结合,控制程序跳转。MAREN将数据总线 DBUS 上数据打入地址寄存器 MAR。MAROE将地址寄存器 MAR 的值送到地址总线 ABUS 上。OUTEN将数据总线 DBUS 上数据送到输出端口寄存器 OUT 里。STEN将数据总线 DBUS 上数据存入堆栈寄存器 ST 中。RRD读寄存器组 R0R3,寄存器 R?的选择由指令的最低两位决定。RWR写寄存器组 R0R3,寄存器 R?的选择由指令的最低两位决定。CN决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。FEN将标志位存入 ALU 内部的标志寄存器。X2X1X0X2、X1、X0 三位组合来译码选择将数据送到

11、DBUS 上的寄存器。WEN将数据总线 DBUS 的值打入工作寄存器 W 中。AEN将数据总线 DBUS 的值打入累加器 A 中。S2S1S0S2、S1、S0 三位组合决定 ALU 做何种运算。COP2000 中有 7 个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由 X2,X1,X0 决定那一个寄存器输出数据。X2 X1 X0输出寄存器0 0 0IN_OE 外部输入门0 0 1IA_OE 中断向量0 1 0ST_OE 堆栈寄存器0 1 1PC_OE PC 寄存器1 0 0D_OE 直通门1 0 1R_OE 右移门1 1 0L_OE 左移门1 1 1没有输出CO

12、P2000 中的运算器由一片 EPLD 实现. 有 8 种运算, 通过 S2,S1,S0 来选择。运算数据由寄存器 A 及寄存器 W 给出, 运算结果输出到直通门 D。S2 S1 S0功能0 0 0A+W 加0 0 1A-W 减0 1 0A|W 或0 1 1A&W 与1 0 0A+W+C 带进位加1 0 1A-W-C 带进位减1 1 0A A 取反1 1 1A 输出 A六.设计具体过程由于一次性设计整个指令系统比较困难,这里将指令系统分为五大部分,每个部分独立设计并进行模块验证。分别是,数据移动指令,加减法指令,位移指令,跳转指令,子函数指令。第一部分:数据移动指令NMOV A,R?NMOV

13、A,MMNMOV A,#IINMOV R?,ANMOV MM.ANMOV R?,#II编写验证程序:NMOV A,#011HNMOV R0,ANMOV A,#022HNMOV R1,#033HNMOV A,R0NMOV 0E1H,ANMOV A,#022HNMOV A,0E1H分步执行程序,直至每步结果正确。通过观察每步操作,以证明结果正确,可进行下一部分设计。第二部分:加减法指令设计NADD A,R?NADD A,MMNADD A,#IINSUB A,R?NSUB A,MMNSUB A,#II编写验证程序:NMOV A,#011HNMOV R0,#02HNMOV 0E1H,ANADD A,#

14、01HNADD A,R0NADD A,0E1HNSUB A,#01HNSUB A,R0NSUB A,0E1H分步执行程序,直至每步结果正确。通过观察每步操作,以证明结果正确,可进行下一部分设计。第三部分:位移指令NRRC A编写验证程序:NMOV A,#0FFHNRRC A分步执行程序,直至每步结果正确。通过观察每步操作,以证明结果正确,可进行下一部分设计。第四部分:跳转指令NJCNJZNJMP编写验证程序:NMOV A,#0FFHNSUB A,#0FFHNJZ NEXTNMOV A,#0DDHNEXT:NMOV A,#0FDHNADD A,#0FDHNJC NEXT2NMOV A,#0EEH

15、NEXT2:NJMP NEXT3NMOV A,#0DDHNEXT3:NMOV A,#01H分步执行程序,直至每步结果正确。通过观察每步操作,以证明结果正确,可进行下一部分设计。第五部分:子函数指令NCALL MMNRET编写验证程序:NJMP NEXTUP:NMOV A,#02HNRETNEXT:NCALL UPNMOV A,#03H分步执行程序,直至每步结果正确。通过观察每步操作,以证明结果正确,可进行下一部分设计。现在进行乘除法程序设计,并最终验证程序,同时验证指令系统乘法程序设计:NJMP MAINN_cheng_R0123:NMOV R2,#0HNMOV R3,#8HNMOV A,#0

16、HN_cheng_loop:NMOV A,R1NRRC ANJC N_cheng_jc_elseNJMP N_cheng_jc_endN_cheng_jc_else:NMOV A,R2NADD A,R0NMOV R2,AN_cheng_jc_end:NMOV A,R2NRRC ANMOV R2,ANMOV A,R1NRRC ANMOV R1,ANMOV A,R3NSUB A,#1HNJZ N_cheng_retNMOV R3,ANJMP N_cheng_loopN_cheng_ret:NMOV A,#0HNRETMAIN:NMOV R0,#012HNMOV R1,#011HNCALL N_cheng_R0123NMOV A, R1NMOV 0E1H,ANMOV A,R2NMOV 0E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号