ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:372.01KB ,
资源ID:29738933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29738933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(综合实验COP实验仪中排序方法的探讨.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

综合实验COP实验仪中排序方法的探讨.docx

1、综合实验COP实验仪中排序方法的探讨模型机综合实验(微程序设计)一、 实验目的综合运用所学计算机原理知识,设计微程序实现题目规定的指令。二、 实验要求1. 做好预习。2. 上机调试使其能达到在 程序单步状态正确运行题目规定的程序。3. 完成实验报告(写出调试小结:在实验中遇到的问题、解决的方法及相关的讨论等)。三、 实验器材系统计算机、伟福COP2000型计算机组成原理教学实验系统各一台,排线若干。四、 实验内容(一) 任务:COP2000实验仪中排序方法探讨。排序。对于存放在R0R3中的数进行排序,有序的存回R0R3。分析:对待比较两个数采用减法比较大小,然后按照顺序存回。针对排序过程可采用

2、不同排序方法,如:冒泡排序,快速排序等。并可以查看不同排序方法在实验仪器上的效率。这个实验过程涉及到数大小比较,数据存储,程序跳转控制,这些过程均能在COP2000计算机组成原理实验仪上完成。在数据结构中,我们学习了对数字排序的不同算法,并详细学习了算法复杂度。但是针对我们使用的计算机不能体会到不同算法在时间上的不同。此次试验能够具体体会算法之间在时间复杂度上的区别。有一定的实验意义。 综上所述:本次试验目标至少做出一种排序方法,并在此基础之上比较各种排序方法的效率。 (二)总体设计1. 汇编程序流程:2. 程序流程说明:本程序完成对R0,R1,R2,R3这四个寄存器的排序工作,按R0-R3降

3、序排序。排序采用冒泡排序法,分别对于R0和R1,R1和R2,R2和R3,三个关系进行判断。若一个关系的前者小于后者,则通过stack寄存器交换两者的值,若前者大于后者,则继续进行下一个关系的大小判断。三个关系依次判断一遍之后,可以保证四个数的最小的数在R3中。再对于三个关系依次判断一遍之后,可以保证第二小的数在R2中,再对于三个关系依次判断一遍之后,可以保证第三小的数在R1中,此时最大的数就在R0中,排序完成。循环执行了三次,用一个数记住循环计数,这个数存在EM中。每次执行一次循环之后就减1,当循环计数为0时,程序结束。(三)详细设计1. 硬件平台:我们所使用的实验仪器为COP2000 计算机

4、组成原理实验仪。COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。模型机的寻址方式分五种:累加器寻址: 操作数为累加器A,还有些指令是隐含寻址累加器A。寄存器寻址: 参与运算的数据在R0-R3 的寄存器中, 寄存器间接寻址:参与运算的数据在存储器EM中,数据的地址在寄存器R

5、0-R3中, 存储器直接寻址:参与运算的数据在存储器EM 中,数据的地址为指令的操作数。立即数寻址: 参与运算的数据为指令的操作数。其工作界面截图如下图:COP2000计算机组成原理实验仪软件工作界面COP2000实验仪器硬件平台结构图如下图:COP2000计算机组成原理实验仪硬件平台2. 指令流程图模型机的缺省的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。用户可以通过COP2000计算机组成原理实验软件或组成原理实验仪来设计自己的指令集。此次试验中部分指令是由我们用COP2000计算机组成原理实验软件设计指令功能自行设计的。下

6、图所示列出本次实验中所用到的指令的周期流程图。MOV指令周期流程图相关运算指令周期流程图跳转指令周期流程图3. 微指令设计:1) 微指令格式模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

7、24 位控制位如下:24位微命令图示2) 微命令含义24位微命令控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写功能,其含义如下:XRD : 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。EMWR: 程序存储器EM写信号。EMRD: 程序存储器EM读信号。PCOE: 将程序计数器PC的值送到地址总线ABUS 上。EMEN: 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。IREN: 将程序存储器EM读出的数据打入指令寄存器IR 和微指令计数器uPC。EINT: 中断返回时清除中断响应和中

8、断请求标志,便于下次中断。ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MAR。MAROE:将地址寄存器MAR的值送到地址总线ABUS上。OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。STEN: 将数据总线DBUS上数据存入堆栈寄存器ST中。RRD: 读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。RWR: 写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。CN: 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。FEN: 将标志位存入ALU内部的标志寄存器。X2:

9、X1: X0: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。WEN: 将数据总线DBUS的值打入工作寄存器W中。AEN: 将数据总线DBUS的值打入累加器A中。S2: S1: S0:S2、S1、S0 三位组合决定ALU做何种运算。X2、X1、X0 三位组合来译码S2、S1、S0 三位组合决定ALU做何种运算3) 指令/微指令表指令表微指令集指令含义:MOV A,MM : 本指令为三个状态周期。在T2状态时,由上条取指操作取出的指令机器码为78H,存入uPC和IR寄存器后做为微程序存储器uM的地址,读出微指令的值为0C77FFFH,相应的有效控制位为EMRD、PCOE、EME

10、N和MAREN,PCOE有效表示将PC值做为程序存储器EM的地址,EMRD表示从程序存储器中读出数据,在本指令中此数据值为01H,EMEN表示将读出的数据送到DBUS总线,MAREN表示将DBUS总线上的数据打入地址寄存器MAR。uPC同时加1,取出下条微指令准备执行。在T1状态时,由uPC做为微程序存储器地址,从uM的79H单元中读出微指令的值为0D7BFF7H,可以参见上条指令的T1状态,此微指令的所完成的功能是,以MAR的值做为程序存储器的地址,读出数据并送到数据总线DBUS,同时将此数据存入累加器A中。uPC加1取出下条微指令准备执行。在T0状态,微指令执行取指令操作。MOV A,#I

11、IH :本指令为两个状态周期。在T1状态时,上次读出的指令机器码,存入uPC中做为微程序存储器uM的地址,读出微指令的值为0C7FFF7H,对应到各个控制位就是EMRD、PCOE、EMEN及AEN为低,处于有效状态,其它控制位为无效状态。由于上条微指令(取指操作)已将PC加1,此时PCOE是将加1后的PC输出到ABUS做为程序存储器EM的地址,EMRD就是从程序存储器EM中读出数据,本指令中读出的数据应为12H,EMEN将读出的数据送到DBUS总线上,AEN 是将DBUS总线上的值存入累加器A中。同时uPC加1为执行下条微指令做准备,PC加1为读取下一条指令做准备。每条指令的最后一条微指令一定

12、是取指令操作,本指令的T0状态周期即为取指令,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。MOV R?,#IIH : 本指令为两个状态周期,T1状态时,类似上条指令,此条指令是将立即数存入R? 寄存器内。T0 状态为取指令操作。,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。MOV MM ,A :本指令分为三个状态周期,T2 状态周期,由上条取指令操作,取得微指令值为

13、0C77FFF,地址值MM 送到MAR 寄存器,为下一步做准备。T1 状态周期,微指令值为0B7BF9F , ALU直通,MAR 输出地址,A累加器中数据送入EM中地址值为MM的寄存器中。本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。MOV A,R? : 本指令为两个状态周期。在T1状态时,由上条取指操作取出的指令机器码为70H,存入uPC后做为微程序地址访问微程序存储器uM的70H单元,读出微指令的值为0FFF7F7,各控制位的状态为RRD、AEN为低电平为有效状态,RRD有效表示从寄存器组R0-R3中读数送到DBUS上,在上条取指令操作时

14、,IREN将取出的指令机器码70H送入IR寄存器,而IR寄存器的最低两位是用来选择寄存器R?的,此时IR寄存器最低两位为00,被读出的寄存器为R0。AEN有效表示将DBUS的数据写到累加器A中。同时uPC加1,为执行下条微指令做准备。 本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。MOV R? , A :本指令为两个状态周期。在T1 状态时,由上条指令取出指令,读出微指令值为0FFFB9F。控制位RWR有效。X2,X1,X0置为 100,ALU直通,数据由R?送到A累加寄存器上。同时uPC加1,为执行下条微指令做准备。 本指令的T0状态也是取

15、指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。SUB A ,#IIH : 本指令为两个状态周期,在T1 状态时,由上条指令取出指令,读出微指令值为 0C7FFEF ,立即数IIH 送入W中,。在T1状态微指令为0FFFE91H,表示ALU做“减运算”,其结果直通到DBUS,再存入A中,同时保存标志位。T0状态为取指操作。SUB A ,R? 本指令为三个状态周期。在T1 状态时,由上条指令取指令,读出微指令值为0FFF7EF ,寄存器R? 中数据送入W 中,在T1状态,微指令为0FFFE99H,表示ALU做“减运算”,其结果直通到DBUS,再存入A中,同时保存标志位

16、。T0状态为取指操作DCY : 本指令是用来消除进位位信号。取微指令值:0FFFE94微指令。ALU直通,做一次清零预算,消除进位位信号。PUSH R?: 本指令为两个指令周期。T1 状态时取微指令值:0FFE7FF 。ST 写入使能,RRD 使能,R?寄存器数据送入ST堆栈中。本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。POP R? : 本指令为两个指令周期。T1 状态时取微指令值:0FFFB5F 。ST 输出使能,RWR使能,R?寄存器允许写入。ST堆栈寄存器中数据送入R?中。本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指

17、令机器码,并存入uPC和IR寄存器中。JC :由上条取指读出的指令码为0A0H,存入IR寄存器后,IR3、IR2的值为00(二进制),表示判进位跳转功能,指令码存入uPC后,从uM读出的微指令值为0C6FFFFH,表示以PC为地址从EM中读出数据02H并送到DBUS,ELP为低成有效状态,与IR3、IR2组成进位跳转控制,此时若有进位,就会产生一个控制信号,将总线DBUS上的值22H打入PC,下条微指令取指时,就会从EM新的地址22H中读指令码;此时若无进位,DBUS上的值被忽略,PC加1,下条取指操作按新PC取出指令码执行。当前无进位标志,顺序执行下条指令。JZ : 由上条取指读出的指令码为

18、3A H,存入IR寄存器后,IR3、IR2的值为01(二进制),表示判零跳转功能,指令码存入uPC后,从uM读出的微指令值为0C6FFFFH,表示以PC为地址从EM中读出数据 3AH 并送到DBUS,ELP为低成有效状态,与IR3、IR2组成零跳转控制,此跳转指令为判零跳转。此时若零标志位为1,即A=0 时,就会产生一个控制信号,将总线DBUS上的值 3AH 打入PC,下条微指令取指时,就会从EM新的地址 3AH 中读指令码;此时若零标志位为0,DBUS上的值被忽略,PC加1,下条取指操作按新PC取出指令码执行。JMP : 由上条取指操作读出的指令码为0CH,存入IR寄存器后,IR3、IR2的

19、值为11(二进制),此为无条件跳转控制,指令码存入uPC后,从uM读出的微指令为0C6FFFFH,表示以PC为地址从EM中读出数据并送到数据总线DBUS上,因为ELP有效,与IR3、IR2组合产生PC的打入信号,将DBUS上的数据存入PC中,下一条取指微指令按新的PC值读出程序的指令码。(四)具体实现每个程序的一开始的第一条微指令一定是取指令,此微指令的值为0CBFFFFH,对应到各个控制位就是EMRD、PCOE、及IREN为低,此三位有效,其它所有位都处于无效状态。在程序第一次运行时或复位后,uPC和PC的值都为0,PCOE有效将PC值送到ABUS,做为程序存储器EM的地址,EMRD信号有效就是从程序存储器EM中读出程序指令,IREN将读出的指令送到IR寄存器和uPC,此微指令的作用就是:从程序存储器EM的0地址读出程序指令机器码7CH,并存入uPC中做为微程序存储器uM的地址,从微程序存储器uM的7CH单元中读出微控制码0C7FFF7H,同时PC加1为读下一条指令或数据做准备。(五)总结1. 目标是否达到2. 存在问题附录:实验汇编源代码:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1