我正在为我的一个类开发一个项目,该项目涉及将C代码转换为MIPS程序集。我在翻译此代码时遇到问题:
r[extract(ir,15,11)] = aluout;
基本上,r []是一个表示C中寄存器的数组。如您所见,它根据extract
函数的结果确定要访问的寄存器。 MIPS中有这样的东西吗?我能想到的唯一方法就是从提取子程序中获取我将返回的值,并根据所有寄存器号进行检查。 C的表示形式如下:
regNum = extract(ir, 15, 11);
if (regNum == 1) {
r[1] = aluout;
} else if (regNum == 2) {
r[2] = aluout;
} else if (regNum == 3) {
r[3] = aluout;
} ...
有什么想法吗?这是唯一可行的方法吗?