-2
我想要的C++代码的下面一行转换成MIPS汇编:翻译C++来MIPS汇编
cout << a2[i]
这是我试过的代码,但我得到不正确的结果。
*变量i保存在$ t5中。
li $v0, 1
la $a0, a2
sll $t5, $t5, 2
add $a0, $a0, $t5
srl $t5, $t5, 2
lw $a0, 0($a0)
syscall
我想要的C++代码的下面一行转换成MIPS汇编:翻译C++来MIPS汇编
cout << a2[i]
这是我试过的代码,但我得到不正确的结果。
*变量i保存在$ t5中。
li $v0, 1
la $a0, a2
sll $t5, $t5, 2
add $a0, $a0, $t5
srl $t5, $t5, 2
lw $a0, 0($a0)
syscall
当谈到MIPS时,我有点生疏。但是,我确实记得一些事情。
除非将参数传递给函数,否则通常不应使用$ a寄存器(与使用系统调用相同)。
因此,在这两种情况下,我会用临时寄存器来代替:
la $a0, a2
add $a0, $a0, $t5
成为
la $t0, a2
add $t1, $t0, $t5
然后:
lw $a0, 0($t1)
syscall
而且你大概可以忽略此作为好:
srl $t5, $t5, 2
除此之外,我会问你收到什么样的错误输出?
你编码的平台是什么? 'a2'的类型是什么?索引操作符是否被重载? –
您是否考虑编译代码并检查输出? –