访问寄存器的编号存储在另一个寄存器中

时间:2016-04-10 18:27:21

标签: assembly mips cpu-registers

我正在为我的一个类开发一个项目,该项目涉及将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;
} ...

有什么想法吗?这是唯一可行的方法吗?

0 个答案:

没有答案