admin管理员组文章数量:1355754
I've recently been running into a strange issue with MARS. When I run the below code on my MacBook Air M2 (macOS Sequoia Version 15.3.2), it outputs 7 3 10
while on other machines, it outputs 5 3 7
as it should.
.text
MAIN:
addi $t1, $zero, 5 # int numB = 5 (use $t1 as temporary register)
addi $a0, $t1, 0 # vala = numB (pass numB as argument to doSth)
addi $a1, $zero, 3 # valb = 3
jal doSth # Call doSth(vala, valb)
addi $a0, $t1, 2 # numB + 2
addi $v0, $zero, 1 # Print integer
syscall
addi $a0, $zero, 10 # newline
addi $v0, $zero, 11 # Print character
syscall
j EXIT
doSth:
addi $sp, $sp, -8 # Allocate stack space
sw $ra, 4($sp) # Save return address
sw $a0, 0($sp) # Save vala
addi $t2, $zero, 2 # int num = 2 (use $t2 for num)
move $a0, $a1 # Pass valb as argument
jal doOther # Call doOther(valb)
add $t2, $t2, $v0 # num = num + doOther(valb)
lw $a0, 0($sp) # Reload vala
addi $v0, $zero, 1 # Print integer
syscall
addi $a0, $zero, 10 # newline
addi $v0, $zero, 11 # Print character
syscall
move $a0, $a1 # Reload valb
addi $v0, $zero, 1 # Print integer
syscall
addi $a0, $zero, 10 # Print newline
addi $v0, $zero, 11 # Print character
syscall
lw $ra, 4($sp) # Restore return address
addi $sp, $sp, 8 # Restore stack space
jr $ra # Return from doSth
doOther:
addi $sp, $sp, -4 # Allocate stack space
sw $ra, 0($sp) # Save return address
addi $t0, $zero, 2 # int numA = 2 (use $t0 for numA as a temporary value)
sub $s0, $a0, $t0 # s0 = val - numA (compute val - numA)
sll $v0, $s0, 2 # return s0 * 4
lw $ra, 0($sp) # Restore return address
addi $sp, $sp, 4 # Deallocate stack space
jr $ra # Return
EXIT:
addi $v0, $zero, 10 # Exit
syscall
I've tried a fresh install of MARS from the official GitHub repo and get the same result. Also tried updating my Java to 24.
本文标签:
版权声明:本文标题:Is there an issue with MARS MIPS Simulator on macOS? My fresh install is outputing incorrect values - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744003610a2574303.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论