首页 > 解决方案 > 这是一个关于 Mips 程序错误的问题

问题描述

这是一个关于 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 

标签: mips

解决方案


推荐阅读