微程序控制和设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:计算机组成原理实验
实验项目:微程序控制和设计
姓名:舒鹏
专业:网络工程
班级: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。
分析: