计算机组成原理实验
实 验 报 告
实 验 人:
学 号:
日 期:
2010.05. 28
院(系):
软件学院
专业(班级): 软件工程(08计算机应用软件)
实验题目:
设计一条加法指令
一. 实验目的
1. 了解和掌握微程序控制器的组成和工作原理;
2. 了解和掌握 Am2910 微程序定序器的组成和工作原理;
3. 进一步了解和掌握计算机各部分的组成及相互关系;
4. 了解微指令的执行过程,掌握微程序的设计方法,理解动态微程序设计的概念;
5. 进一步认识和掌握计算机各指令的执行过程,搞清楚计算机的工作原理。
二. 实验内容
把用绝对地址表示的内存单元 ADDR1 的内容与内存单元 ADDR2 的内容相加,结果存到
ADDR1 单元中。
三. 实验器材
TEC-2 实验计算机、电脑各一台
四. 实验分析与设计
1. 指令格式
指令格式:
D4XX
ADDR1
ADDR2
2. 指令功能
功能:
[ADDR1] + [ADDR2] → [ADDR1]
3. 设计分析
根据指令的功能和指令格式,开始时,PC 指向 ADDR1所在的内存地址,通过 PC+1
→PC,PC 指向 ADDR2所在的内存地址,然后取出 ADDR2中的数据并存于 Q 寄存器中,
然后将 PC 减1赋于 AR,取出 ADDR1中的数据并与 Q 值相加,然后存于 ADDR1中。PC+1
→PC,CC#=0,指令执行完毕,跳出指令。
4. 微程序
100:PC+1→PC,PC→AR: 0000
0000
101:MEM→AR:
0000
102:MEM→Q:
0000
103:PC-1→AR:
104:MEM→AR:
0000
0000
105:MEM+Q→Q:
0E00
0E00
0E00
0E00
0E00
0E01
B030
10F0
00F0
9130
10F0
00E0
5402
0002
0000
5402
0002
0000
106:Q → MEM:
107: PC+1→PC,CC#=0:
0000
0029
0E00
0300
1020
B030
0010
5400
5. 将微码输入到由 900H 开始的内存单元中
计算机组成原理实验
用"E"命令输入微码
在命令行提示符状态下输入:
>E900↙
屏幕将显示:
0900:
之后继续输入:
0E00
10F0
0000
0000
0E01
1020
B030
0002
0000
0E00
00E0
0010
0000
0E00
00F0
5402
0000
0E00
B030
5402
0000
0E00
10F0
0000
0029
0000
0E00
9130
0002
0000
0300
5400↙
6. 将微码加载到微控存中
;微码在内存中的首地址
;微指令条数
;微码在微控制存储器中的首地址
;加载微码指令,将微码指令加载到微控制存储器中
>A800↙
0800:MOV R1,900
0802:MOV R2,8
0804:MOV R3,100
0806:LDMC
0807:RET
0808:↙
用"G"命令运行加载微码的程序
>G800
微码便装入起始地址为 100H 的微控存中
7. 运行程序段
>A820↙
0820:MOV R0,0011
0822:MOV [0890],R0
0824:MOV [0891],R0
0826:NOP
0827:NOP
0828:NOP
0829:RET
>E0826↙
然后输入以下内容:
D400 0890 0891
8. 运行结果
>G820↙
**如果结果放在内存单元 0890 中,则应写为:
>D890↙
0890:0022
五. 思考题
1.把用绝对地址表示的内存单元 ADDR 的内容与内存数据 DATA 相加,结果存到
计算机组成原理实验
ADDR 单元中。
指令格式
指令格式:
D8XX
ADDR
DATA
指令功能
[ADDR] + [DATA] → [ADDR]
功能:
微程序:
110:PC+1→PC,PC→AR: 0000
111:MEM→Q:
0000
0000
112:PC-1→AR:
0000
113:MEM→AR:
114:MEM+Q→Q:
0000
0000
115:Q → MEM:
116: PC+1→PC,CC#=0:
0029
0E00
0E00
0E00
0E00
0E01
0E00
0300
B030
00F0
9130
10F0
00E0
1020
B030
5402
0000
5402
0002
0000
0010
5400
2.将内存单元数据 DATA 减去用绝对地址 ADDR 表示的内存单元的内容,结果保存到
由 DR 指定的内存单元中。
指令格式
指令格式:
DC7X
DATA
ADDR
指令功能
[DATA] - [ADDR] → [DR]
功能:
7 是 DR 对应的编号。
微程序:
120:PC→AR,PC+1→PC: 0000
0000
121:MEM→Q:
122:PC→AR:
0000
0000
123:MEM→AR:
0000
124:Q-MEM→Q:
0000
125: DR→AR:
126:Q → MEM:
0000
0029
127: PC+1→PC,CC#=0:
0E00
0E00
0E00
0E00
0E01
0E00
0E00
0300
A0B5
00F0
9030
10F0
01E0
9030
1020
B030
5402
0000
5002
0002
0000
700A
0010
5400
3.设计一条指令,实现将[SR]内容与内存单元 ADDR 的内容相加,结果存到 ADDR
单元中。
指令格式
指令格式:
指令功能
DCX3
ADDR
计算机组成原理实验
[SR] + [ADDR] → [ADDR]
功能:
3 是 SR 对应的编号。
微程序:
120:SR→Q:
121:PC→AR:
122:MEM→AR:
123:MEM+Q→Q:
124:Q → MEM:
125: PC+1→PC,CC#=0:
0000
0000
0000
0000
0000
0029
0E00
0E00
0E00
0E01
0E00
0300
8043
9030
10F0
00E0
1020
B030
0080
5002
0002
0000
0010
5400
4.设计一条指令,实现将[DR]内容与内存单元数据 DATA 的内容相加,结果存到 ADDR
单元中。
指令格式
指令格式:
指令功能
DC7X
DATA
ADDR
[DR] + [DATA] → [ADDR]
功能:
7 是 DR 对应的编号。
微程序:
120:DR→Q:
121:PC→AR,PC+1→PC:
122:MEM+Q→Q:
123:PC→AR:
124:MEM→AR:
125:Q → MEM:
126: PC+1→PC,CC#=0:
0000
0000
0000
0000
0000
0000
0029
0E00
0E00
0E01
0E00
0E00
0E00
0300
8030
A0B5
00E0
9030
10F0
1020
B030
7008
5402
0000
5002
0002
0010
5400
六. 实验心得
这次实验的原理太多了,还很难,看了好久都看不懂,还是经过老师讲解以后才有
所理解。然后再把试验例题的微码一遍遍的验证,分析每一步的目的,做法。弄懂微码设计
的步骤后,开始慢慢的设计要求的指令,关键在于指令中每一个分步骤的实现(寻址,取数,
执行,存数),最难得是其码点的设置。还好尝试了很多次以后,终于做出来了。在做思考
题的时候,遇到了 DR、SR,对其的使用方法不是很懂,只知道他们是目的寄存器和源操
作数寄存器,但是在指令中如何使用,微码如何安排都不了解,经过很多次尝试才弄懂 以
DCXX 命令为例:
若使用 DR 则 应 DC | X | DR 若使用 SR 则 DC | X | SR,还有 在传送 DR 时
SB=1,B 口地址是 DR 对应的寄存器编号;传送 SR 时,SA=1,A 口地址是 SR 对应的寄
存器编号。