设计一条条件转移指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验人:赵汝鹏学号: 09381052 日期: 2010-12-15 院(系):计算机科学系专业(班级):网络工程
实验题目:设计一条条件转移指令
一.实验目的
1.了解和掌握微程序控制器的组成和工作原理;
2.进一步了解和掌握计算机各部分的组成及相互关系;
3.了解微指令的执行过程,掌握微程序的设计方法,理解动态微程序设计的概念;
4.进一步认识和掌握计算机各指令的执行过程,搞清楚计算机的运行原理。
二.实验内容
设计一条指令,实现的功能是:
当DR=SR时,则原PC(IP)+OFFSET->PC;
当DR
否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址)
三.实验器材
TEC-2实验计算机、电脑各一台
四.实验分析与设计
(2)指令功能
功能:设计一条指令,实现的功能是:
当DR=SR时,则原PC(IP)+OFFSET->PC;
当DR
否则执行下条汇编指令。(注:OFFSET为位移量;ADDR为某内存单元地址)
(3)设计分析
由于要根据DR与SR运算结果进行跳转,所以在110先让DR-SR产生DR与SR
的信息在状态寄存器。在111这里如果Z=1,则跳转至114进行下一步操作,否则
继续执行下一条;在112这里如果S=1,则转115进行下一步操作,否则执行下一
条。如果111与112都没有跳转,证明DR-SR>0,则让PC等于下一条指令的地址。
操作码选择DB,因为如此IR8-10位是011,CC非的值等于S非的值。
(4) 微程序
110:DR-SR 0000 0E01 9110 0088
111:PC->AR, 如果DR=SR转114 0045 0370 9030 5002
112:PC+1->AR,如果DR 113:PC+1->PC,转4A 0029 0300 B030 5400 114:IP+OFFSET->PC 0029 0300 30D6 5000 115:ADDR->PC 0029 0300 30F0 5000 (5) 加载到微控存程序段 A800 800:MOV R1, 900 802:MOV R2, 6 804:MOV R3, 110 806:LDMC 807:RET 808: G800 (6) 运行程序段 A820 820:MOV R7, 7 822:MOV R8, 8 824:MOV R9, 0 826:NOP 827:NOP 828:NOP 829:MOV R9, 1 82B:RET 82C:MOV R9, 2 82E:RET 82F:MOV R9, 3 831:RET 832: E826 DB78 0006 082F G820 第一种情况是DR 输入R查看后R9=0003 第二种情况是DR=SR E821 0008 G820 输入R查看后R9=0002 第三种情况是DR>SR E821 0009 G820 输入R查看后R9=0001 五.实验心得 本次试验将微指令,指令的操作都混在了一起,而且要求能熟练设计条件转移指令,因此难度上提高了不少。如果不强制限制一种情况要使用SCC=7的话,会简单很多,但是试验要求到,只能在IR8-10位那里选一个能符合转移情况的数字作为操作码,经观察发现D8可以让CC非等于C非,D9可以让CC非等于Z非,而DB可以让CC非等于S非,分别可以作为为负,为零,为负的判断,本次试验选择了DB。而在汇编程序的设计上也要花点心思,因为如果发生了DR<=SR的情况,汇编程序是会根据PC跳转到我们自己设计的地址去的,所以应该在那些地址执行一个操作,如写入R9一个数,以检验试验是否成功,同时还要为程序的三种分支分别写上RET,以结束汇编程序。