问题。编写与以下 Java 代码片段等效的 MIPS 汇编代码。
int x = 1 ;
int y = 3 ;
int c = 2 ;
x = y - c ;
if (x != y) { x = y + 5 ; }
else { x = c ; } ;
这就是我目前所拥有的。
.data
X: .word 1
Y: .word 3
C: .word 2
.text
main:
la $t1, X
la $t2, Y
la $t3, C
lw $t1, ($t1)
lw $t2, ($t2)
lw $t3, ($t3)
sub $t1, $t2, $t3
li $v0, 1
beq $t1, $t2, iflabel
add $t1,$t3, 0 # sets x = c by adding zero to c and putting result in $t1 (register for x) used.
iflabel: add $t1,$t2,5
syscall
li $v0, 10
据我所知,应该打印“8”,但 0 是 ?!?,不是家庭作业问题,只是关于 MIPS 的一些修订问题。我可以猜测我的 syscall 可能在错误的地方并且可能导致错误?,我正在使用 MARS 进行编程,因为我可以看到寄存器的内容并逐行运行,但仍然对我的问题没有帮助。