浙江理工大学计算机组成原理课程设计报告Word文件下载.docx
《浙江理工大学计算机组成原理课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《浙江理工大学计算机组成原理课程设计报告Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
指令格式:
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。
四、实验要求:
(1)根据内容自行设计相关指令微程序;
(务必利用非上机时间设计好微程序)
(2)设计测试程序、实验数据并上机调试。
(3)设计报告内容:
包括1、设计目的2、设计内容3、微程序设计(含指令格式、功能、设计及微程序)4、实验数据(测试所设计指令的程序及结果)。
(具体要求安最新规范为准)
(4)大型实验报告必须打印成册,各班班长收齐大型实验报告于19周星期五前,交张芳老师办公室。
五、上机时间安排:
2014计算机组成原理课程设计安排如下:
(第十九周)
(地点:
10-413和414机房)
时间
星期
9:
00---12:
00
1:
00---4:
17:
30—20:
30
备注
星期三
6月25日
12计算机
(1)12计算机
(2)12计算机(3)
电信实验班
星期四
6月26日
12计算机
(1)
12计算机
(2)
12计算机(3)
星期五
6月27日
备注:
1.各班每2人一组,可自由组合但要固定,各班班长将各组组号及学生名单于第一次上机时上报指导教师;
2.各班学生须严格按照规定的时间上机,不得无故缺席、迟到早退,指导教师会严格考勤。
指导教师:
许建龙、张芳2014年6月18日
计算机组成原理课程设计实验报告
一、目的和要求
二、实验环境
PC机与TEC-2机模拟程序
三、具体内容
(一)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元C中。
1.微程序:
(1)PC→AR,PC+1→PC00000E00A0B55402
当前程序计数器内容送地址寄存器,为读取第一个操作数地址做准备;
程序计数器指向下一单元地址
B55----------------------------------------------------------------------------------------------------------------B0
0000
1110
1010
1011
0101
0100
0010
CI3-CI0(B43-B40)为1110,功能为顺序执行;
SCC(B39-B37)为000,CC#=1,不发生转移;
SST(B34-B32)为000,标志位不发生改变;
MIO#(B31)REQ(B27)WE#(B23)为101,表示不操作;
B口地址(B15-B12)为0101,BI8-BI6(B30-B28)为010,MI5-MI3(B26-B24)为000,MI2-MI0(B22-B20)为011,SCI(B11-B10)为01,SA(B7)为0,SB(B3)为0,表示5号通用寄存器R5,即PC通过B口实现加1,再通过B口写回到PC(B+0+Cin→B);
(2)MEM→AR00000E0010F00002
从主存读取第一个操作数地址,为读取第一个操作数做准备
B55-----------------------------------------------------------------------------------------------------------------B0
0001
1111
MIO#REQWE#为001,表示从主存储器读入数据(地址);
B口地址为0000,BI8-BI6为001,MI5-MI3为000,MI2-MI0为111,SCI为00,表示AM2901不做运算;
(3)MEM→Q00000E0000F00000
从主存读取第一个操作数
B55--------------------------------------------------------------------------------------------------------------------B0
MIO#REQWE#(B23)为001,表示从主存储器读入数据(地址);
I8-6为000,MI5-3为000,MI2-0为111,表示将主存中读出的数据加上0,再将结果回送到Q寄存器;
(4)PC→AR,PC+1→PC00000E00A0B55402
当前程序计数器内容送地址寄存器,为读取第二个操作数地址做准备;
(5)MEM→AR00000E0010F00002
从主存读取第二个操作数地址,为读取第二个操作数做准备
(6)MEM+Q→Q00000E0000E00000
从主存读取第二个操作数
MIO#REQWE#为001,BI8-6为000,MI5-3为000,MI2-0为110,表示将第二个操作数从主存读出并且加上Q寄存器的内容,再将结果回送到Q寄存器;
(7)PC→AR,PC+1→PC00000E00A0B55402
当前程序计数器内容送地址寄存器,为读取计算结果存储单元地址做准备;
(8)MEM→AR00000E0010F00002
从主存读取结果存储单元地址
(9)Q→MEM,CC#=00029030010200010
计算结果送结果存储单元
1001
0011
MIO#REQWE#为000,BI8-6为001,MI5-3为000,MI2-0为010,表示将Q寄存器里面的内容存到AR存储的单元地址对应的存储单元;
B55-B46为0010100100(4AH),即下地址,CI3-0为0011(3号命令,条件转移),SCC为00(CC#),表示转移到4AH中断。
2.输入微码
>
E900
09000000:
00000000:
0E000000:
A0B50000:
54020000:
09050000:
10F00000:
00020000:
0E00
090A0000:
00F00000:
A0B5
090F0000:
0002
09140000:
0E010000:
00E00000:
09190000:
091E0000:
00290000:
03000000:
1020
09230000:
;
将微程序的16进制代码输入到从900H开始的内存单元中
3.查看微码
D900
090000000E00A0B5540200000E0010F00002
090800000E0000F0000000000E00A0B55402
091000000E0010F0000200000E0100E00000
091800000E00A0B5540200000E0010F00002
092000290300102000100000000000000000
查看单元内容是否正确
4.加载微码
A800
0800:
MOVR1,900;
微码在内存中的首地址为900H
0802:
MOVR2,9;
微程序一共有9条微指令
0804:
MOVR3,100;
微码加载到微控存中的首地址
0806:
LDMC;
加载微码指令
0807:
RET;
返回
0808:
G800;
执行加载微码程序
5.输入程序,测试新指令
A820
0820:
MOVR0,0023将操作数放到寄存器R0,这里两个操作数都是23H
0822:
MOV[A00],R0将R0存放的操作数放到A00地址单元
0824:
MOV[A01],R0将R0存放的操作数放到A01地址单元
0826:
NOP
0827:
0828:
0829:
082A:
RET
082B:
E826编辑0826开始到0829单元内容,将新指令输入
08260000:
D4000000:
0A000000:
0A010000:
0A02
U820查看
2C000023MOVR0,0023
34000A00MOV[0A00],R0
34000A01MOV[0A01],R0
D400DWD400
0A00ADCR0,R0
0A01ADCR0,R1
0A02ADCR0,R2
AC00RET
G820运行
6.运算结果
DA00
0A0000230023004600000000000000000000
0A00单元和0A01单元内容为操作数,相加后结果为0046,存在0A02单元,正确
(二)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。
1.微程序
(1)PC→AR,PC+1→PC00000E00A0B55402
当前程序计数器内容送地址寄存器,为读取操作数地址做准备;
(2)MEM→AR00000E0010F00002
从主存读取第一个操作数地址,为读取操作数做准备
(3)SR-[ADDR]→DR0029030131D00088
寄存器SR存放的操作数减去ADDR单元内容,并存入DR
1101
1000
MIO#REQWE#为000,BI8-6为011,MI5-3为001,MI2-0为101,SA(B7)=1,SB(B3)=1,表示将寄存器SR(A口)存放的操作数减去ADDR单元内容,并存入DR(通过B口);
0301
31D00000:
0088
09080029030131D000880000000000000000
MOVR2,3;
MOVR3,130;
MOVR0,0023将减数放到通用寄存器R0
MOVR3,0027将被减数放到通用寄存器R3
MOV[A00],R0将R0中减数放到0A00单元
E826编辑0826开始到0827单元,将新指令输入,其中SR为R3,DR为R2
E0230000:
0A00
2C300027MOVR3,0027
E023DWE023
R
R0=0023R1=090CR2=0004R3=0027SP=FFFFPC=0820IP=0828R7=0000R8=0000
R9=0000R10=0000R11=0000R12=0000R13=0000R14=0000R15=0000F=00001111
源寄存器为R3,目的寄存器为R2,被减数为0023,减数为0027,结果为0004存放于R2,正确
(三)转移指令。
1.微程序
(1)SR-DR00000E0191900088
SR内容减DR内容,若相等,则标志符Z=1,否则Z=0
SST=01,表示接收运算结果设置标志位状态
(2)PC→AR,CC#=CND,PC+1→PC002903E0A0B55402
当前程序计数器内容送地址寄存器,条件转移信号CC#=CND,即判断Z是否为1,若为1则中断条件成立;
B55-------------------------------------------------------------------------------------------