计算机组成原理.docx
- 文档编号:24374593
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:11
- 大小:22.06KB
计算机组成原理.docx
《计算机组成原理.docx》由会员分享,可在线阅读,更多相关《计算机组成原理.docx(11页珍藏版)》请在冰豆网上搜索。
计算机组成原理
计算机组成原理大型实验
报告
(2010/2011第2学期------第19周)
指导教师:
班级:
姓名:
学号:
计算机组成原理课程设计实验报告
一、目的和要求
目的:
深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。
要求:
(1)、内容自行设计相关指令微程序;(务必利用非上机时间设计好微程序)
(2)、测试程序、实验数据并上机调试;
(3)、报告内容:
包括
1、设计目的
2、设计内容
3、微程序设计(含指令格式、功能、设计及微程序)
4、实验数据(测试所设计指令的程序及结果)。
(具体要求安最新规范为准)
二、实验环境
TEC—2机与PC机。
三、具体内容
实验内容:
(1)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元C中。
指令格式:
D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)
功能:
[ADDR3]=[ADDR1]+[ADDR2]
(2)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。
指令格式:
E0DRSR,ADDR(SR,DR源、目的寄存器各4位)双字指令(控存入口130H)
功能:
DR=SR-[ADDR]
(3)转移指令。
判断两个通用寄存器内容是否相等,若相等则转移到指定绝对地址,否则顺序执行。
指令格式:
E5DRSR,ADDR双字指令(控存入口140H)
功能:
ifDR==SRgotoADDRelse 顺序执行。
设计:
利用指令的CND字段,即IR10~8,令IR10~8=101,即CC=Z
则当DR==SR时Z=1,微程序不跳转,接着执行MEMPC(即ADDRPC),而当DR!
=SR时Z=0,微程序跳转至A4。
实验设计并分析:
第一条:
把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元C中。
指令格式:
D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)
功能:
[ADDR3]=[ADDR1]+[ADDR2]
指令格式:
D4XX
ADDR1
ADDR2
ADDR3
微程序:
PC→AR,PC+1→PC:
00000E00A0B55402
MEM→AR:
00000E0010F00002
MEM→Q:
00000E0000F00000
PC→AR,PC+1→PC:
00000E00A0B55402
MEM→AR:
00000E0010F00002
MEM+Q→Q:
00000E0100E00000
PC→AR,PC+1→PC:
00000E00A0B55402
MEM→AR:
00000E0010F00002
Q→MEM,CC#=0:
0029030010200010
指令分析:
PC->AR,PC+1->PC
0000
0000
1110
0000
0000
1010
0000
1011
0101
0101
0100
0000
0010
MEM->AR
0000
0000
1110
0000
0000
0001
0000
1111
0000
0000
0000
0000
0100
MEM->Q
0000
0000
1110
0000
0000
0000
0000
1111
0000
0000
0000
0000
0000
PC->AR,PC+1->PC
0000
0000
1110
0000
0000
1010
0000
1011
0101
0101
0100
0000
0010
MEM->AR
0000
0000
1110
0000
0000
0001
0000
1111
0000
0000
0000
0000
0100
MEM+Q->Q
0000
0000
1110
0000
0001
0000
0000
1110
0000
0000
0000
0000
0000
PC->AR,PC+1->PC
0000
0000
1110
0000
0000
1010
0000
1011
0101
0101
0100
0000
0010
MEM->AR
0000
0000
1110
0000
0000
0001
0000
1111
0000
0000
0000
0000
0100
Q->MEM,CC#=0
0029
0000
0011
0000
0000
0001
0000
0010
0000
0000
0000
0001
0000
假设从地址[0828]开始执行微程序,此时程序计数器PC的值是0829。
因为运行程序的时候[0829]和[0830]中存了加法的两个加数的内存地址,所以要想方设法1)把这两个加数传到运算器的寄存器中,2)在运算器中相加,3)将结果输出到内存单元[ADDR1]。
以下分别进行分析。
1)取每个加数要访问两次内存,第一次是取得加数所在的内存地址的值(MEM→AR),第二次是取得加数本身并保存在Q寄存器中(MEM→Q)。
注意,取第二个加数的时候,第一次仍是MEM→AR,而第二次MEM+Q→Q的同时也把加法给完成了,请见接下来的分析。
2)相加的操作是MEM+Q→Q。
MEM是从内存中取得的第二个加数的值,左边的Q是刚才取得的第一个加数的值。
他俩相加的和传给Q寄存器,覆盖掉了Q寄存器刚才保存的值(第一个加数)。
3)现在Q寄存器中存有加法的运算结果,最后的工作是把这个结果写到内存单元[ADDR1]中去。
如果AR或者PC指向[ADDR1]的话就好办了,难点在于现在AR已经到了[ADDR2]处,PC已经到了[ADDR2+1]处,而且又不知道如何让寄存器的值减一。
后来问同学,得到了解决办法:
利用IP寄存器。
IP正好还呆在[ADDR1-1],即内存地址[0828]。
显然,让IP+1就得到了[ADDR1],即[0829]。
微指令是IP+1→AR以及MEM→AR,这时AR的值为第一个加数所在的单元[ADDR1]。
现在Q的值是运算结果,AR的值是运算结果要传给的内存地址。
显而易见,最后一步就是“存储器写”操作Q→MEM。
其它要注意的地方:
1)微程序中有两处PC+1→PC,第一处是为了取得第二个加数所在的内存地址,第二处是为了把PC指向下一句,在这里是RET,才能使程序正常结束。
2)程序最后要转向A4H执行后续处理程序。
此处下地址的转换方法:
将A4H从左到右用八位二进制数写出,左边补两个“0”,右边加两个“0”(备用位B45、44),得到001010010000B,再把这个十二位二进制数翻译成十六进制,结果是290H。
3)使用Q寄存器的好处有:
第一,不修改通用寄存器R0,R1等,因为别的程序可能用到它们。
第二,程序易读、风格优美。
程序调试:
第二条:
将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。
指令格式:
E0DRSR,ADDR(SR,DR源、目的寄存器各4位)双字指令(控存入口130H)
功能:
DR=SR-[ADDR]
微程序:
PC→AR,PC+1→PC:
00000E00A0B55402
MEM→AR:
00000E0010F00002
SR-[ADDR]→DR:
0029030131D00088
指令格式:
E0XX
ADDR
指令分析:
根据指令的功能和指令格式,先读取地址ADDR单元内容暂时放置于Q寄存器中,然后再读取内存单元中的DATA,同时与Q寄存器内容相减,结果存放在DR寄存器中。
每条指令系统微操作详细:
PC->AR,PC+1->PC
0000
0000
1110
0000
0000
1010
0000
1011
0101
0101
0100
0000
0010
MEM->AR
0000
0000
1110
0000
0000
0001
0000
1111
0000
0000
0000
0000
0100
SR-MEM->DR
0029
0000
0011
0000
0001
0011
0001
1101
0000
0000
0000
1000
1000
调试:
第三条:
转移指令。
判断两个通用寄存器内容是否相等,若相等则转移到指定绝对地址,否则顺序执行。
指令格式:
E5DRSR,ADDR双字指令(控存入口140H)
功能:
ifDR==SRgotoADDRelse 顺序执行。
设计:
利用指令的CND字段,即IR10~8,令IR10~8=101,即CC=Z
则当DR!
=SR时Z=1,微程序不跳转,接着执行MEMPC(即ADDRPC)
而当DR==SR时Z=0,微程序跳转至A4。
微程序:
SR-DR:
00000E0191900088
PC→AR,CC#=CND,PC+1→PC:
002903E0A0B55402
MEM→PC:
0029030030F05000
指令格式:
E5XX
ADDR
指令分析:
1、SR-DR,运算器接受标志位,设定标志位
2、PC→AR,PC+1→PC,,SCC=7,IR10-8=101,CC#=Z
DR=SR,CC#=Z=1,顺序执行102,DR≠SR转移到下地址为103的指令继续转移
3、(DR=SR)偏移量OFFSET加IP(R4),结果赋给PC(R5),然后令CC#=0,用3号命令条件转移到A4H,结束微程序
4、PC→AR,PC+1→PCSCC=101,SC=1,使CC#=S#,DR>SR,SR-DR<0,S=1,CC#=S#=0,3号命令条件转移到下地址为A4H的指令结束程序,DR
5、(DR 每条指令系统微操作详细: SR-DR 0000 0000 1110 0000 0000 1001 0001 0001 0000 0000 0000 1000 1000 PC->AR,PC+1->PC 0029 0000 0011 1110 0000 1010 0000 1011 0101 0101 0100 0000 0010 MEN->PC 0029 0000 0011 1110 0001 0010 0000 1111 0000 0101 0000 0000 0000 调试: >E900 09000000: 00000000: 0E010000: 91900000: 00880000: 0029 09050000: 03E00000: A0B50000: 54020000: 00290000: 0300 090A0000: 30F00000: 5000 >D900 090000000E0191900088002903E0A0B55402.........).αá╡T. 09080029030030F050000000000000000000.)..0≡P......... 091000000000000000000000000000000000................ 091800000000000000000000000000000000................ 092000000000000000000000000000000000................ 092800000000000000000000000000000000................ 093000000000000000000000000000000000................ 093800000000000000000000000000000000................ >A800 0800: MOVR1,900 0802: MOVR2,3 0804: MOVR3,140 0806: LDMC 0807: RET 0808: >G800 >A820 0820: MOVR8,0011 0822: MOVR9,0011 0824: NOP 0825: NOP 0826: MOVR9,0002 0828: RET 0829: >E824 08240000: E4890000: 0828 >U820 0820: 2C800011MOVR8,0011 0822: 2C900011MOVR9,0011 0824: E489DWE489 0825: 0828ADCR2,R8 0826: 2C900002MOVR9,0002 0828: AC00RET 0829: 0000NOP 082A: 0000NOP 082B: 0000NOP 082C: 0000NOP 082D: 0000NOP 082E: 0000NOP 082F: 0000NOP 0830: 0000NOP 0831: 0000NOP >G820 结果显示: >R R0=0000R1=090CR2=0000R3=0143SP=0FD0PC=0820IP=00CDR7=0000R8=0011 R9=0002R10=0000R11=0000R12=0000R13=0000R14=0000R15=0000F=01001111 0820: 2C800011MOVR8,0011 > 四.实验心得 通过这次的课程设计,使得我们进一步地熟悉了PC机与TEC-2机,同时也更深层次的了解了计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,同时在一定程度上理解和掌握了动态微程序设计的概念。 更加深入的了解了指令、微程序、微码的关系和构成,通过设计、调试指令,熟悉了计算机内部的控制器与算术逻辑单元的运行过程,对计算机内部结构更加熟悉。 成绩评定表 指导教师考核成绩 答辩成绩 总成绩 签字: 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理