当前位置:文档之家› 微程序控制和设计知识分享

微程序控制和设计知识分享

微程序控制和设计
成绩:实验报告
计算机组成原理实验
课程名
称:
微程序控制和设计
实验项
目:
姓名:舒鹏
专业:网络工程
班级:11-3
学号:1104020321
计算机科学与技术学院
实验教学中心2013 年 6月 24日
实验项目名称:微程序控制和设计
一、实验目的
综合运用所学计算机原理知识,设计微程序实现题目规定的指令。

二、实验内容
在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机器码并下载到实验仪上,由软件控制程序实现单指令执行、单微指令执行、全速执行,并可以在软件上观察指令或微指令执行过程中数据的走向、各控制信号的状态、各寄存器的值。

COP2000软件的使用方法见第七章“COP2000集成开发环境使用”。

也可以用实验仪自带的小键盘和显示屏来输入、修改程序,用键盘控制单指令或单微指令执行,用LED或用显示屏观察各寄存器的值。

实验仪上的键盘使用方法见第六章“实验仪键盘使用”。

在用微程序控制方式做综合实验时,在给实验仪通电前,拔掉实验仪上所有的手工连接的接线,再用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。

若想用
COP2000软件控制组成原理实验仪,就要启动软件,并用快捷图标的“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。

微指令格式:
模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。

指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。

而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。

在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

2)完成对R0,R1,R2,R3这四个寄存器的排序工作,按R0-R3降序排序。

3)排序采用冒泡排序法,分别对于R0和R1,R1和R2,R2和R3,三个关系进行判断。

若一个关系的前者小于后者,则通过stack寄存器交换两者的值,若前者大于后者,则继续进行下一个关系的大小判断。

三个关系依次判断一遍之后,可以保证四个数的最小的数在R3中。

再对于三个关系依次判断一遍之后,可以保证第二小的数在R2中,再对于三个关系依次判断一遍之后,可以保证第三小的数在R1中,此时最大的数就在R0中,排序完成。

4)循环执行了三次,用一个数记住循环计数,这个数存在EM中。

每次执行一次循环之后就减1,当循环计数为0时,程序结束。

指令/微指令表:
指令表
三、实验用设备仪器及材料
COP2000实验仪、导线若干、系统计算机。

四、实验原理
在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。

在做综合实验之前,先用8芯电缆连接J1和J2,这样实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口。

此综合实验使用的指令是模型机的缺省指令/微指令系统。

六、实验结果分析
实验1:数据传送实验/输入输出实验
1.在COP2000软件中的源程序窗口输入下列程序
2.将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。

3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX1.ASM程序跟踪结果。

实验2:数据运算实验(加/减/与/或)
1.在COP2000软件中的源程序窗口输入下列程序
2.将程序另存为EX2.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、
机器码、反汇编指令。

3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX2.ASM程序跟踪结果。

4.在了解数据运算的原理,可以加上一些数据传输指令给累加器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
END
1)按快捷图标的F7,执行“单微指令运行”功能,观察执行下面每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

给出EX2.ASM程序跟踪结果。

ADDC A, R1
SUB A, @R1
AND A, #55H
OR A, 02H
5)实现寄存器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
OUT
END
试验二:
对于存放在R0~R3中的数进行排序,有序的存回R0~R3。

分析:
对待比较两个数采用减法比较大小,然后按照顺序存回。

针对排序过程可采用不同排序方法,如:冒泡排序,快速排序等。

并可以查看不同排序方法在实验仪器上的效率。

这个实验过程涉及到数大小比较,数据存储,程序跳转控制,这些过程均能在
COP2000计算机组成原理实验仪上完成。

在数据结构中,我们学习了对数字排序的不同算法,并详细学习了算法复杂度。

但是针对我们使用的计算机不能体会到不同算法在时间上的不同。

此次试验能够具体体会算法之间在时间复杂度上的区别。

有一定的实验意义。

综上所述:本次试验目标至少做出一种排序方法,并在此基础之上比较各种排序方法的效率。

试验代码为:
MOV R0 , #37H
MOV R1 , #17H MOV R2 , #29H MOV R3 , #41H MOV A , #03H MOV 02H, A LOOP:
MOV A ,R0
SUB A , R1
JC S0
M1:
MOV A ,R1
SUB A , R2
JC S1
M1:
MOV A ,R2
SUB A , R3
JC S2
M3:
SUB A ,#01H
JC S3
JMP LOOP
S0:
MOV A ,R0
PUSH R0 MOV R1 , A
POP R1
DCY
JMP M1
S1:
MOV A ,R1 PUSH R1 MOV R2 , A
POP R2
DCY
JMP M2
S2:
MOV A ,R2 PUSH R2 MOV R3 , A
POP R3
DCY
JMP M3
S3:
IN
OUT
END。

相关主题