这是一个关于 Mips 程序错误的问题。
这是一个 Mips 编程问题。我创建了过程 f = (g + h)-(i + j),但是当我使用 QTspim 运行代码时,输出此过程结果的语法中出现了一条错误消息。(错误信息是'Exception 12 [Arithmetic overflow]发生并被忽略'。)
为什么我会收到此错误?
.data
a0: .word 1 #g=1, h=2, i=3, j=4, saved in $a0, $a1, $a2, and $a3
a1: .word 2
a2: .word 3
a3: .word 4
str1: .asciiz "The answer is "
.text
.globl main
leaf:
add $t0, $a0, $a1 #Include g+h in register $t0
add $t1, $a2, $a3 #Include i+j in register $t1
sub $s0, $t0, $t1 #f = $t0-$t1 (g + h)-(i + j)
add $v0, $s0, $zero #returns f
jr $ra
main:
sub $sp, $sp, 0 #Create $sp space for local variable creation
li $v0, 4
la $a0, str1
syscall
jal leaf
lw $a0, 0($sp)
li $v0, 1
syscall
exit:
li $v0, 10 # terminate program run and
syscall # Exit