计算机组成原理课程设计实习报告
题目一
微指令的设计:控制字段就是该微指令所要完成功能所需要哪些开关有效和那些开关无效的01代码排列,即有它决定实现什么功能。而判别字段则是完成一些特殊的任务,例如P0和P2都参与选择微程序的分支,P1参与是否有中断的判断。下地址字段是给出下个微指令的微指令存储器中位置,一遍顺利执行下一条微指令,因为一条机器指令是由若干条微指令完成的。下面是微指令的具体格式:
微指令的格式
简要即:
控制字段
判别测试字段
下地址字段
二. 新的指令系统的添加:
指令一:异或指令 XOR RD,RS:(RS)异或(RD)→(RD),微指令框图如下
SW-BUS#,M4=1LDR4,LDPC
SW-BUS#,M4=1
LDR4,LDPC
M3=0,LDAR2,CERLDIR,PC-INC
M3=0,LDAR2,CER
LDIR,PC-INC
M1=0,LDDR1M2=0,LDDR2
M1=0,LDDR1
M2=0,LDDR2
ALU=A@BALU-BUS,LDER
ALU=A@B
ALU-BUS,LDER
WRD
WRD
指令二:“寄存器中的数据加1”指令:(RS)+1→(RS). 微指令框图如下:
RS-BUS#M4=1
RS-BUS#
M4=1
LDR4
LDPC
PC-INC
LDIARTJ
LDIAR
TJ
IAR-BUS#LDER
IAR-BUS#
LDER
WRD
WRD
0F
三.指令系统的特点及寻址方式分析:
指令系统就是计算机所有指令的集合。指令系统的特点是通过具体某条指令体现的。一条指令,其的功能是靠若干微指令完成。一条指令可分为操作码字段和地址码字段,也很类似微指令格式一样。操作码字段表明该指令的具体功能,该段的机器代码经过控制器的编译,从而产生若干一起完成该指令的微指令,并且连续运行,从而完成该指令的具体功能。而地址码字段,是指出下参与该指令的数据在内存或寄存器中的地址,该地址可以是直接或间接的。
指令的寻址方式有两种,顺序寻址与跳跃寻址。而操作数的寻址方式更多,有隐含寻址,立即寻址,直接寻址,间接寻址,寄存器寻址和寄存器间接寻址,相对寻址,基址寻址,变址寻址,块寻址等等。
四.数据通路原理图:
五.十条标准指令的执行步骤以及在执行过程中的运算结果:
微指令功能及其格式
测试程序如下表
运行过程如下:
指令(地址)
执行过程的微指令
执行后的结构
LDA R0,[R2](00H)
14 和35微指令
R0=24H
LDA R1[R3](01H)
14和35微指令
R1=83H
ADD R0,R1(02H)
10和3B微指令
R0=107H
JC +5(03H)
19和1F微指令
地址转到09H
JMP[R1](09H)
18微指令
地址转到01H
AND R2,R3(04H)
13和38微指令
SUB R3,R2(05H)
11和3A微指令
STA R3 [R2](06H)
14和35微指令
MUL R0,R1(07H)
12和39微指令
STP(08H)
16微指令
测试结果如下表
题目二
一.实验目的:设计一个程序,完成y=a*x*x+b*x+c求解.
二.微程序设计:
设计思路:要想求出这个代数式的值,先要将其分割。大体上分为三部:先求出a*x*x的值,再求出b*x的值,然后将它们相加。先将各个参与计算的数据存入到四个寄存器中,第一步求出a*x的值,继续存放在R1中,然后再用R1中的值再与x相乘,乘积存放在R1中。再将b与x相乘,乘积放在R2中。然后就是执行两次加法运算就可以了。R1和R2里面存的数相加存放在R1中,然后再将它与c相加即得结果存放于R1中。然后读出R1中的值即可。充分利用四个寄存器,依据这样一个设计思路,得出以下程序:
Y=ax^2+bx+c 令R0=x,R1=a,R2=b,R3=c
Y=a*x*x+b*x+c 要进行的步骤如下:
Mul:
1.a*x->R1MUL R1,R0
2.a*x*x R1*x-> R1MUL R1,R0
3.b*x-> R2 MUL R2,R0
ADD:
1.a*x*x +b*x R1+R2—》R1ADD R1,R2
2.a*x*x +b*x+c ADD R1,R3
将程序翻译成16进制代码,微指令地址及其代码
函数
Y=ax*x+b*x+c
赋值
R0=x(2)