我目前正在使用流水线为 RISC 处理器开发周期精确模型。我使用讲师的一些代码示例编写了流水线方法的代码,但它不起作用。我对以下功能有点困惑:
void rf (int RS1, int RS2, int RD, dramcmdT cmd1, dramcmdT cmd2, dramcmdT cmd3, int din, int *dout1, int *dout2)
{
static int array[32];
if (cmd1 == RD)
*dout1 = array[RS1];
if (cmd2 == RD)
*dout2 = array[RS2];
if (cmd3 == WR)
array[RD] = din;
}
RS1、RS2、RD 是我发送的一些整数值,cmd1 和 cmd2 始终为 RD,cmd3 始终为 WR。所以基本上所有的 if 语句都应该被执行,但他们没有。我总是在dout1 和dout2 中得到零。我在问我的讲师 *dout1 = array[RS1] 是否是正确的表示法,他说它是正确的,但我不明白它的作用以及为什么我在 dout1 和 dout2 中得到零?有人熟悉这个符号吗?