搜档网
当前位置:搜档网 › 计算机组成原理实验五参考

计算机组成原理实验五参考

计算机组成原理实验五参考
计算机组成原理实验五参考

实验五CPU组成与机器指令执行实验

第一步,对机器指令系统组成的简单程序进行译码。

第二步,接线

本实验的接线比较多,需仔细。

1.将跳线开关J1用短路子短接。时序发生器的输入TJI接控制存储器的输出TJ。控制器的输入C接运算器ALU的C。控制器的输入IR7、IR6、IR5、IR4依次指令寄存器IR的输出IR7、IR6、IR5、IR4。共6条线。

2.控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0 依次与数据通路的对应信号连接。共27条线。

3.指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。共6条线。

合上电源。按CLR#按钮,使实验系统处于初始状态。

第三步,利用控制台微程序KLD设置通用寄存器R2、R3的值

在本操作中,我们打算使R2 = 60H,R3 = 61H。

1.令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。令SWC = 0、SWB = 1、SWA = 1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮,

使实验系统处于初始状态。

2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。

该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储

器单元的内容。例如可将该地址设置为0FFH。按一次QD按钮,将0FFH写入AR1

和AR2。

3.在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。按一次QD按钮,则将02H写入IR。

4.在SW7—SW0设置60H,作为R2的值。按一次QD按钮,将60H写入IR 指定的R2寄存器。

5.在SW7—SW0上设置03H,作为通用寄存器R3的寄存器号。按一次QD按钮,将03H写入IR。

6.在SW7—SW0设置61H,作为R3的值。按一次QD按钮,将61H写入R3。7.设置R2、R3结束,按CLR#按钮,使实验系统恢复到初始状态。

演示

第四步,利用控制台微程序KWE存程序机器代码

本操作中,我们从00地址开始存10个机器代码:58H,5DH,04H,95H,3EH,1BH,4BH,24H,60H,84H。在60H存入24H,用于给R0置初值;在61H 存入83H,用于给R0置初值。

1.令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。令SWC = 0、SWB = 1、SWA = 0,使实验系统处于写双端口存储器工作方式KWE,如图所示。按CLR#按钮,使实验系统处于初始状态。

2.置SW7—SW0为00H,按QD按钮,将00H写入AR1。

3.置SW7—SW0 为58H,按QD按钮,将58H写入存储器00H单元。AR1自动加1,变为01H。

4.置SW7—SW0为5DH,按QD按钮,将5DH写入存储器01H单元。AR1自动加1,变为02H。

5.按QD按钮,使AR1+1。AR1此时为02H。

6.重复进行下去,一直到将84H写入存储器09H单元。按CLR#按钮,使实验系统恢复到初始状态。

7.置SW7—SW0为60H,按QD按钮,将60H写入AR1。

8.置SW7—SW0 为24H,按QD按钮,将24H写入存储器60H单元。AR1自动加1,变为61H。

9.置SW7—SW0 84H,按QD按钮,将83H写入存储器61H单元。按CLR#按钮,使实验系统恢复到初始状态。

第五步,用单拍(DP)方式执行一遍程序。

在单拍执行过程中,首先要随时监测AR2的值和IR的值,以判定程序执行到何处,正在执行哪条指令。监测微地址指示灯和判断字段指示灯,对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下:

初值:R0未定,R1未定,R2 = 60H,R3 = 61H。存储器60H单元的内容是24H,61H单元的内容是83H。

执行结果R2 = 60H,R0 = 24H。

演示

2.LDA R1,[R3]

执行结果R3 = 61H,R1 = 83H。

3.ADD R0,R1

执行结果R0 = 0A7H,R1 = 83H,C = 0。

4.JC +5

执行结果转移到03H,因为C = 0。

5.AND R2,R3

执行结果R2 =60 H,R3 =61H。

6.SUB R3,R2

执行结果R2 = 60H,R3 = 01H

7.STA R3,[R2]

执行结果R2 = 60H,R3 = 01H,存储器60单元的内容为01H。

执行结果R0 = 15H,R1 = 83H

9.STP

执行结果:无变化

10.JMP [R1]

执行结果转移到83H。

第一遍执行结束。执行结果是R0 = 15H,R1 = 83H,R2 = 60H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H。

第六步,用单指(DZ)方式执行一遍程序。

初值: R0 = 15H,R1 = 83H,R2 = 60H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H。

1.LDA R0,[R2]

执行结果R2 = 60H,R0 = 01H。

2.LDA R1,[R3]

执行结果R3 = 01H,R1 = 5DH。

执行结果R0 = 5EH,R1 = 5DH,C = 0

4.4.JC +5

执行结果转移到03H,因为C = 0。

5.AND R2,R3

执行结果R2 =00 H,R3 =01H。

6.SUB R3,R2

执行结果R2 = 00H,R3 = 01H

7.STA R3,[R2]

执行结果R2 = 00H,R3 = 01H,存储器00单元的内容为01H。8.MUL R0,R1

执行结果R0 = 0B6H,R1 = 5DH

9.STP

执行结果:无变化

10.JMP [R1]

执行结果转移到5CH

第二遍执行结束。执行结果是R0 = 9CH,R1 = 5CH,R2 = 00H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为01H。

第七步,用连续方式执行一遍程序

由于00单元的内容已被修改,因此在执行前应首先恢复00H单元的内容58H。初值:R0 = 0B6H,R1 = 5DH,R2 = 00H,R3 = 01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为58H。

1.LDA R0,[R2]

执行结果R2 = 00H,R0 = 58H。

2.LDA R1,[R3]

执行结果R3 = 01H,R1 = 5DH。

3.ADD R0,R1

执行结果R0 = 0B5H,R1 = 5DH,C = 0

4.4.JC +5

执行结果转移到03H,因为C = 0。

5.AND R2,R3

执行结果R2 =00 H,R3 =01H。

6.SUB R3,R2

执行结果R2 = 00H,R3 = 01H

7.STA R3,[R2]

执行结果R2 = 00H,R3 = 01H,存储器00单元的内容为01H。8.MUL R0,R1

执行结果R0 = 41H,R1 = 5DH

9.STP

执行结果:无变化

相关主题