微程序设计2 设计一条加法指令.doc
文本预览下载声明
实 验 报 告
实 验 人: 学 号: 日 期: 2011-12-15 院(系): 信息科学与技术学院 专业(班级): 10级信息安全专业 实验题目: 设计一条加法指令
实验目的
了解和掌握微程序控制器的组成和工作原理;
进一步了解和掌握计算机各部分的组成及相互关系;
了解微指令的执行过程,掌握微程序的设计方法,理解动态微程序设计的概念;
进一步认识和掌握计算机各指令的执行过程,搞清楚计算机的运行原理。
实验内容
把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。
实验器材
TEC-2实验计算机、电脑各一台
实验分析与设计
指令格式
指令格式: D4XX ADDR1 ADDR2
指令功能
功能: [ADDR1] + [ADDR2] → [ADDR1]
设计分析
取每个加数要访问两次内存,第一次是取得加数所在的内存地址的值(MEM→AR), 第二次是取得加数本身并保存在Q寄存器中(MEM→Q)。注意,取第二个加数的时候,第一次仍是MEM→AR,而第二次MEM+Q→Q的同时也把加法给完成了。相加的操作是MEM+Q→Q。MEM是从内存中取得的第二个加数的值,左边的Q是刚才取得的第一个加数的值。他俩相加的和传给Q寄存器,覆盖掉了Q寄存器刚才保存的值(第一个加数)。现在Q寄存器中存有加法的运算结果,最后的工作是把这个结果写到内存单元[ADDR1]中去。如果AR或者PC指向[ADDR1]的话就好办了,而现在AR已经到了[ADDR2]处,PC已经到了[ADDR2+1]处,而且又不知道如何让寄存器的值减一。通过老师的提示知道了利用IP寄存器可得ADDR1在内存的地址。IP正好还处在[ADDR1-1]。显然,让IP+1就得到了[ADDR1]。微指令是IP+1→AR以及MEM→AR,这时AR的值为第一个加数所在的单元[ADDR1]。现在Q的值是运算结果,AR的值是运算结果要传给的内存地址。显而易见,最后一步就是“存储器写”操作Q→MEM。
微程序
100:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
101:MEM→AR: 0000 0E00 10F0 0002
102:MEM→Q: 0000 0E00 00F0 0000
103:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
104:MEM→AR: 0000 0E00 10F0 0002
105:MEM+Q→Q: 0000 0E01 00E0 0000
106:IP+1→AR: 0000 0E00 9030 6402
107:MEM→AR: 0000 0E00 10F0 0002
108:Q→MEM,CC#=0: 0029 0300 1020 0010MOV R1,900
0802:MOV R2,
0804:MOV R3,100
0806:LDMC ;加载微码指令,将微码指令加载到微控制存储器中
0807:RET
0808:
G800↙
运行程序段
A820
0820:MOV R0,0020822:MOV R1, 000824:MOV [0890],R0
0826:MOV [0891],R1
0828:NOP
0829:NOP
0830:NOP
0831:RET
E828
输入以下内容:
D400 0890 0891
指令格式: D4 X SR ADDR
指令功能
功能: [ADDR] + SR → [ADDR]
设计分析
在读取地址ADDR单元内容后暂时放置于Q寄存器中,然后将SR(R8)与Q寄存器内容相加,其结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的恰好是地址ADDR,因此只要将Q寄存器内容写入存储器就可以完成所需的指令功能。
微程序
100:PC→AR,PC+1→PC: 0000 0E00 A0B5 5402
101:MEM→AR: 0000 0E00 10F0 0002
102:MEM→Q: 0000 0E00 00F0 0000
103:Q+SR→Q: 0000 0E01 8080 0080
显示全部