.text main: .data a: .word 0 bb: .word 0 x: .word 0 copy1: .word 0 y: .word 0 copy2: .word 0 z: .word 0 result: .word 0 statuscode: .word 0 .text li $v0,5 syscall move $t1,$v0 seq $t0,$t1,0 sw $t1,a bnez $t0,GETNUMS seq $t0,$t1,1 sw $t1,a bnez $t0,GETNUMS b ERROR GETNUMS: li $v0,5 syscall move $t1,$v0 li $v0,5 syscall move $t2,$v0 lw $t0,a sne $t0,$t0,1 bnez $t0,SUBNUMS ADDNUMS: add $t3,$t1,$t2 sw $t1,copy1 sw $t2,copy2 sw $t3,result b PRINT SUBNUMS: sub $t3,$t1,$t2 sw $t2,copy1 sw $t1,copy2 sw $t3,result PRINT: lw $t0,a seq $t0,$t0,0 bnez $t0,WRITESUBOPS lw $t1,copy1 li $v0,1 move $a0,$t1 syscall lw $t2,copy2 li $v0,1 move $a0,$t2 syscall b WRITERESULT WRITESUBOPS: lw $t1,copy2 li $v0,1 move $a0,$t1 syscall lw $t2,copy1 li $v0,1 move $a0,$t2 syscall WRITERESULT: lw $t0,result li $v0,1 move $a0,$t0 syscall li $t1,0 sw $t1,statuscode b FINISHED ERROR: li $t0,1 neg $t0,$t0 sw $t0,statuscode FINISHED: lw $t0,statuscode li $v0,1 move $a0,$t0 syscall li $v0,10 syscall