我想将这个java代码翻译成MIPS。我收到语法错误。你能告诉我我做错了吗? Java
public static void setCount(int count)
{
IntegerMath.count = count;
}
Mips
.globl setCount
#---------------
.text
setCount: #-----------------
lw count($0), $t0
jr $ra
#----------------------------- `
Java
System.out.println(IntegerMath.getCount());
int a = new Scanner(System.in).nextInt();
IntegerMath.setCount(a);
System.out.println(IntegerMath.getCount());`
Mips
#--------------------------------------------------
jal getCount #System.out.println(IntegerMath.getCount())
add $a0, $0, $v0
addi $v0, $0, 1
syscall
#-----------------------------------------------------
addi $v0, $0, 5 # readInt make new variable
syscall
add $t0, $0, $v0 #set t0 to value
#------------------------------------------
jal setCount
add $a0, $0, $v0
#-------------------------------
addi $v0, $0, 1
syscall
#-------------------------
addi $sp, $sp, 4
lw $ra, 0($sp)
jr $ra
答案 0 :(得分:0)
你的问题就在你的" setCount"方法:lw count($0), $t0
加载Word不能以这种方式使用!
您不能将count
用作操作数。
如果您尝试加载count
进入$ t0,执行此操作:lw $t0, count($0)
我建议您使用 MARS MIPS Emulator 。它内置了错误检查,非常有效。
SIDE注意:
只是关于你的格式。虽然它并不重要,但从语法上来说,格式化addi
语句更为可接受,如下所示,以便于阅读:
addi $v0, <some number>, $zero
此外,这一个。 add $a0, $v0, $zero