当前位置:文档之家› 计算机组成原理实验实验报告

计算机组成原理实验实验报告

计算机组成原理实验报告
学院信息与管理科学学院
专业班级计算机科学与技术2010级2班学生姓名毛世均 1010101046 指导教师郭玉峰
撰写日期:二○一二年六月四日
SA4=1 SA3=I7·P1 SA2=I6·P1 SA1=I5·P1+I3·P2+CA2·P4 SA0=I4·P1+I2·P2+CA1·P4
1.根据上边的逻辑表达式,分析58页图6-2的P1测试和P4测试两条指令的微地址转移方向。

P1测试:进行P1测试时,P1为0,其他的都为1,
因此SA4=1, SA3=I7,SA2=I6,SA1=I5,SA0=I4
微地址011001,下址字段为001000下址字段001000译码后,高两位不变,仍然为00,低四位受到机器指令的高四位I7-I4的影响。

机器指令的高四位为0000时,下一条微指令地址为001000,转到IN 操作。

机器指令高四位0010时,下一条微指令地址为001010,转到MOV 操作。

机器指令高四位为0001时,下一条微指令地址为001001,转到ADD 操作。

机器指令高四位为0011时,下一条微指令地址为001011,转到OUT 操作。

机器指令高四位为0100时,下一条微指令地址001100,转到JMP 操作
P4测试:进行P4测试时,P4为0,其他的都为1.
因此SA4=SA3=SA2=1,SA1=CA2,SA0=CA1
微地址000000,下址字段为010000. 010000被译码之后,高四位不变,0100低两位由CA2和CA1控制。

CA2和CA1的值是由单片机的键盘填入控制的。

当实验选择CtL2=1时,CA2和CA1被填入0和1,这时低两位被译码电路翻译成01,所以下一条微地址就是010001,然后进入写机器指令的状态。

当实验选择CtL2=2时,CA2和CA1被填入1和0,这时低两位被译码电路翻译成10,所以下一条微地址就是010010,然后进入读机器指令的状态。

当实验选择CtL2=2时,CA2和CA1被填入1和1,这时低两位被译码电路翻译成
11,所以下一条微地址就是010011,然后进入运行机器指令的状态。

2.分析实验六中五条机器指令的执行过程。

控制开关,微地址为00(以下微地址均为8进制数),进入P4测试,转到微地址23,空操作,下址字段01.以下开始进入程序运行阶段。

01,PC→AR,PC+1。

PC送入地址寄存器AR,并且PC自增1
下一个微地址02,RAM→D_BUS→IR。

PC指向的内存内容00000000(IN AX,KIN)上数据总线,并进入指令寄存器IR中。

下一个微地址31,进行P1测试。

测试结果得出微地址10,D_INPUT→AX外设输入数据送入AX寄存器。

第一条机器指令执行完毕。

AX里存入外设输入的数。

再次转入01号微地址。

01,PC→AR,PC+1。

下一个微地址02,RAM→D_BUS→IR。

PC指向的内存内容00100001(MOV BX,01H)上数据总线,并进入指令寄存器IR中。

下一个微地址31,进行P1测试。

测试结果得出微地址12,PC→AR,PC+1
下一个微地址07,RAM→D_BUS→BX,此时PC所指向的内存单元存01H。

第二条机器指令执行完毕。

BX里存入01H。

再次转入01号微地址。

01,PC→AR,PC+1。

下一个微地址02,RAM→D_BUS→IR。

PC指向的内存内容0001000(ADD AX,BX)上数据总线,并进入指令寄存器IR中。

下一个微地址31,进行P1测试。

测试结果得出微地址11,AX→D_BUS→LT1
下一个微地址03,BX→D_BUS→LT2
下一个微地址06,LT1+LT2→AX
第三条机器指令执行完毕。

AX和BX中的数相加,送AX。

再次转入01号微地址。

01,PC→AR,PC+1。

下一个微地址02,RAM→D_BUS→IR。

PC指向的内存内容00110000(OUT DISP,AX)上数据总线,并进入指令寄存器IR中。

下一个微地址31,进行P1测试。

测试结果得出微地址13,AX→LED
第四条机器指令执行完毕。

AX存的数输出到LED灯上。

再次转入01号微地址。

01,PC→AR,PC+1。

下一个微地址02,RAM→D_BUS→IR。

PC指向的内存内容01000000(JMP 00H)上数据总线,并进入指令寄存器IR中。

下一个微地址31,进行P1测试。

测试结果得出微地址14,PC→AR,PC+1。

第五条机器指令执行完毕。

再次转入01号微地址。

并且PC指向0号内存单元。

程序可以重新运行。

3.修改MOV指令,使送入BX的值为02H
因为MOV指令执行的时候,是把MOV所在内存单元的下一个单元的数据存入BX的。

所以在写机器指令时,把0000 0010号内存单元改为02H即可。

即在写机器指令时吧地址02H的内容改为0002H即可
4.设计一条机器指令,
IN BX,KIN 数据输入电路→BX
微程序入口地址为16(八进制)
将原程序的MOV指令替换,再运行,写出执行结果。

需要添加一条微代码,微地址16(八进制),微代码为018FC1(十六进制)。

不能照抄10号微指令的018E01,因为那条微指令的F3字段为全0,会进行P1测试,产生错误。

应该把F3字段改为全1。

IN BX,KIN机器指令的代码为:61(十六进制)。

这样在P1测试时,就能得到微地址16。

而且61转换为2进制时,最低两位是01,保证向BX存数。

运行结果:用户输入1111,再输入2222,数码管显示器显示3333
5.设计一条机器指令
SUB AX,BX AB-BX→AX
微程序入口地址为17
将原程序的ADD指令替换,再运行,写出执行结果。

需要添加3条微代码,第一条地址为17(八进制),再不与原来微指令冲突的情况下,剩下两条微指令的地址可以是任意的。

表中没有05和32,因此可以在这两个位置添加。

微指令的前18位可以参考add的3条微指令,要修改最后六位的下址字段。

32号微指令还要修改前6位,控制ALU做减法。

SUB AX,BX机器指令代码为:70,保证在P1测试时,能得到微地址17。

运行结果:用户输入1234,再输入1111数码管显示器显示0123.。

相关主题