1、微程序控制和设计知识分享微程序控制和设计成绩:实 验 报 告课程名称:计算机组成原理实验实验项目:微程序控制和设计姓 名:舒鹏专 业:网络工程班 级:11-3学 号:1104020321计算机科学与技术学院实验教学中心2013 年 6月 24日实验项目名称:微程序控制和设计1、实验目的综合运用所学计算机原理知识,设计微程序实现题目规定的指令。2、实验内容 在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机器码并下载到实验仪上,由软件控制程序实现单指令执行、单微指令执行、全速执行,并可以在软件上观察指令或微指令执行过程中数据的走向、各控制信号的状态、各寄存器的值。
2、COP2000软件的使用方法见第七章“COP2000集成开发环境使用”。也可以用实验仪自带的小键盘和显示屏来输入、修改程序,用键盘控制单指令或单微指令执行,用LED或用显示屏观察各寄存器的值。实验仪上的键盘使用方法见第六章“实验仪键盘使用”。 在用微程序控制方式做综合实验时,在给实验仪通电前,拔掉实验仪上所有的手工连接的接线,再用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。若想用COP2000软件控制组成原理实验仪,就要启动软件,并用快捷图标的“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。 微指令格式:模型机的指令码为8
3、 位,根据指令类型的不同,可以有0 到2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。2)完成对R0,R1,R2,R3这四个寄存器的排序工作,按R0-R3降序排序。3)排序采用冒泡排序法,分别对于R0和R1,R1和R2,R2和R3,三个关系进行
4、判断。若一个关系的前者小于后者,则通过stack寄存器交换两者的值,若前者大于后者,则继续进行下一个关系的大小判断。三个关系依次判断一遍之后,可以保证四个数的最小的数在R3中。再对于三个关系依次判断一遍之后,可以保证第二小的数在R2中,再对于三个关系依次判断一遍之后,可以保证第三小的数在R1中,此时最大的数就在R0中,排序完成。4)循环执行了三次,用一个数记住循环计数,这个数存在EM中。每次执行一次循环之后就减1,当循环计数为0时,程序结束。 指令/微指令表:指令表3、实验用设备仪器及材料COP2000实验仪、导线若干、系统计算机。4、实验原理 在综合实验中,模型机作为一个整体来工作的,所有微
5、程序的控制信号由微程序存储器uM输出,而不是由开关输出。在做综合实验之前,先用8芯电缆连接J1和J2,这样实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口。此综合实验使用的指令是模型机的缺省指令/微指令系统。 6、实验结果分析 实验1:数据传送实验/输入输出实验1在COP2000软件中的源程序窗口输入下列程序 MOV A, #12H MOV A, R0 MOV A, R0 MOV A, 01H IN OUT END2将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。程序地址机器码反汇编指令指令说明 00
6、 7C 12 MOV A, #12立即数12H送到累加器A 02 7D 12 MOV A, RO将R0中的内容送到累加器A 04 7E 12 MOV A, R0将R0中的内容作为地址送到A 06 7F MOV A, 01H将地址01H中的内容送到A3按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。给出EX1.ASM程序跟踪结果。实验2:数据运算实验(加/减/与/或)1在COP2000软件中的源程序窗口输入下列程序 ADDC A, R1 SUB A, R0 AND A, #55H OR A, 02H END2将程序
7、另存为EX2.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。程序地址机器码反汇编指令指令说明 00 21 ADDC A, R1累加器A的值加上寄存器R1加进位 02 22 SUB A, R0累加器A的值减去R0地址中的值 04 23 AND A, #55H累加器A的值与立即数55H按位与 06 24 OR A, 02H累加器A的值与02H中的值按位或3按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。给出EX2.ASM程序跟踪结果。4在了解数据运算的原理,可以加上一些数据传输指令给累加
8、器A或寄存器R?赋值,再运算,并观察运算结果。练习:综合运用实验1与实验2的相关功能操作完成任务。将立即数44H,77H,33H,55H分别送入寄存器R0,R1,R2,R3中,立即数11H送入累加器A中,并完成下面的运输操作: MOV R0, #44H MOV R1, #77H MOV R2, #33H MOV R3, #55H MOV A, #11H ADDC A, R1 SUB A, R1 AND A, #55H OR A, 02H IN OUT END1)按快捷图标的F7,执行“单微指令运行”功能,观察执行下面每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。
9、给出EX2.ASM程序跟踪结果。ADDC A, R1SUB A, R1AND A, #55HOR A, 02H5)实现寄存器R0,R1,R2,R3的数据相加。 MOV R0, #44H MOV R1, #77H MOV R2, #33H MOV R3, #55H MOV A, R1 ADD A, R2 ADD A, R3 ADD A, R0 IN OUTEND试验二:对于存放在R0R3中的数进行排序,有序的存回R0R3。分析:对待比较两个数采用减法比较大小,然后按照顺序存回。针对排序过程可采用不同排序方法,如:冒泡排序,快速排序等。并可以查看不同排序方法在实验仪器上的效率。这个实验过程涉及到数
10、大小比较,数据存储,程序跳转控制,这些过程均能在COP2000计算机组成原理实验仪上完成。在数据结构中,我们学习了对数字排序的不同算法,并详细学习了算法复杂度。但是针对我们使用的计算机不能体会到不同算法在时间上的不同。此次试验能够具体体会算法之间在时间复杂度上的区别。有一定的实验意义。 综上所述:本次试验目标至少做出一种排序方法,并在此基础之上比较各种排序方法的效率。 试验代码为: MOV R0 , #37H MOV R1 , #17HMOV R2 , #29HMOV R3 , #41HMOV A , #03HMOV 02H, ALOOP:MOV A ,R0SUB A , R1JC S0M1:MOV A ,R1SUB A , R2JC S1M1:MOV A ,R2SUB A , R3JC S2M3: SUB A ,#01HJC S3JMP LOOPS0:MOV A ,R0PUSH R0MOV R1 , APOP R1DCYJMP M1S1:MOV A ,R1PUSH R1MOV R2 , APOP R2DCYJMP M2S2:MOV A ,R2PUSH R2MOV R3 , APOP R3DCY JMP M3S3:INOUTEND
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1