- 教材中图1.1所示模型机(采用教材图1.2所示指令格式)的指令系统中,除了有mov(op=0000)、add(op=0001)、load(op=1110)和store(op=1111)指令外,R型指令还有减(sub,op=0010)和乘(mul,op=0011)等指令,请仿照教材图1.3给出求解表达式“z=(x-y)*y;”所对应的指令序列(包括机器代码和对应的汇编指令)以及在主存中的存放内容,并仿照教材图1.5给出每条指令的执行过程以及所包含的微操作。
参考答案:
实现z=(x-y)*y的程序在主存部分单元中的初始内容如下。
主存地址 |
主存单元内容 |
内容说明(Ii表示第i条指令) |
指令的符号表示 |
0 |
1110 0111 |
I1: R[0] ← M[7];op=1110:取数操作 |
load r0, 7# |
1 |
0000 0100 |
I2: R[1] ← R[0];op=0000:传送操作 |
mov r1, r0 |
2 |
1110 0110 |
I3: R[0] ← M[6];op=1110:取数操作 |
load r0, 6# |
3 |
0010 0001 |
I4: R[0] ← R[0] - R[1];op=0010:减操作 |
sub r0, r1 |
4 |
0011 0001 |
I5: R[0] ← R[0] * R[1];op=0011:乘操作 |
mul r0, r1 |
5 |
1111 1000 |
I6: M[8]← R[0];op=1111:存数操作 |
store 8#, r0 |
6 |
0001 0001 |
操作 |