弄清楚如何为MIPS模拟器设置内存

时间:2015-02-06 23:33:00

标签: c mips

我正在用C ++编写MIPS模拟器。它接收十六进制的文本文件,并且需要在每条指令之后输出寄存器内容和解码的指令。所以我将hex文件转换为二进制文件以获取操作码,rs,rt,rd,funct和sham字段,这样我就可以找出它是什么指令。

我被困了因为我来了SW和LW指令,我不知道如何处理模拟内存。我的寄存器在数组[0-31]和我的指令[无论读入的指令数量]和单词[无论是数字还是单词读入]。

但我不确定如何模拟LW和SW ...我知道如何编码/解码它们,但内存部分(连同偏移量)让我失望。有什么建议?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如果内容密集和/或速度至关重要,并且你在模拟的环境中有足够的内存,你可以使用一个大的honkin'数组(就像你正在做的那样)寄存器 - 但更大。)

如果内容稀疏,和/或您在运行模拟器的环境中没有大量内存,并且速度不如空间重要,则可以使用关联数组。

这个问题引用了几个用于关联数组的C库:

Associative arrays in C