《设计一条条件转移指令》由会员分享,可在线阅读,更多相关《设计一条条件转移指令(3页珍藏版)》请在金锄头文库上搜索。
1、实实 验验 报报 告告实验人:实验人: 赵汝鹏赵汝鹏 学号:学号: 0938105209381052 日期:日期: 2010-12-152010-12-15 院(系):院(系): 计算机科学系计算机科学系 专业专业( (班级班级) ): 网络工程网络工程 实验题目:实验题目: 设计一条条件转移指令设计一条条件转移指令 一一. 实验目的实验目的 1.了解和掌握微程序控制器的组成和工作原理; 2.进一步了解和掌握计算机各部分的组成及相互关系; 3.了解微指令的执行过程,掌握微程序的设计方法,理解动态微程序设计的概念; 4.进一步认识和掌握计算机各指令的执行过程,搞清楚计算机的运行原理。二二. 实验
2、内容实验内容 设计一条指令,实现的功能是: 当 DR=SR 时,则原 PC(IP)OFFSETPC; 当 DRPC。 否则执行下条汇编指令。(注:OFFSET 为位移量;ADDR 为某内存单元地址)三三. 实验器材实验器材 TEC-2 实验计算机、电脑各一台四四. 实验分析与设计实验分析与设计 (1) 指令格式指令格式指令格式:DBDRSROFFSETADDR(2) 指令功能指令功能 功能:设计一条指令,实现的功能是: 当 DR=SR 时,则原 PC(IP)OFFSETPC; 当 DRPC。 否则执行下条汇编指令。(注:OFFSET 为位移量;ADDR 为某内存单元地址) (3) 设计分析设计
3、分析 由于要根据 DR 与 SR 运算结果进行跳转,所以在 110 先让 DR-SR 产生 DR 与 SR 的信息在状态寄存器。在 111 这里如果 Z=1,则跳转至 114 进行下一步操作,否 则继续执行下一条;在 112 这里如果 S=1,则转 115 进行下一步操作,否则执行 下一条。如果 111 与 112 都没有跳转,证明 DR-SR0,则让 PC 等于下一条指令 的地址。操作码选择 DB,因为如此 IR8-10 位是 011,CC 非的值等于 S 非的值。 (4) 微程序微程序110:DR-SR0000 0E01 9110 0088 111:PC-AR, 如果 DR=SR 转 11
4、40045 0370 9030 5002 112:PC+1-AR,如果 DRPC,转 4A0029 0300 B030 5400 114:IP+OFFSET-PC0029 0300 30D6 5000 115:ADDR-PC0029 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
5、 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 082FG820 第一种情况是第一种情况是 DRSRE821 0009 G820 输入 R 查看后 R9=0001五五. 实验心得实验心得 本次试验将微指令,指令的操作都混在了一起,而且要求能熟练设计条件转移指 令,因此难度上提高了不少。如果不强制限制一种情况要使用 SCC=7 的话,会简单很 多,但是试验要求到,只能在 IR8-10 位那里选一个能符合转移情况的数字作为操作码, 经观察发现 D8 可以让 CC 非等于 C 非,D9 可以让 CC 非等于 Z 非,而 DB 可以让 CC 非 等于 S 非,分别可以作为为负,为零,为负的判断,本次试验选择了 DB。而在汇编程 序的设计上也要花点心思,因为如果发生了 DR=SR 的情况,汇编程序是会根据 PC 跳 转到我们自己设计的地址去的,所以应该在那些地址执行一个操作,如写入 R9 一个数, 以检验试验是否成功,同时还要为程序的三种分支分别写上 RET,以结束汇编程序。