# signedOF.s # MIPS program written to illustrate signed addition overflow detected manually # Susan Haller 2/17/03 # Modified: Susan Lincke 2/20/05 .data a: .word 0x7fffffff .text .globl main main: la $a0, a # t1 = 0x7fffffff lw $t1, 0($a0) move $t2,$t1 # t2 = 0x7fffffff addu $t0, $t1, $t2 # t0 = t1 + t2 xor $t3, $t1, $t2 # If (t1.sign != t2.sign || blt $t3, $zero, noOverflow # xor $t3, $t0, $t1 # t0.sign == t1.sign) blt $t3, $zero, overflow noOverflow: # // No overflow occured addi $t0, $zero, 1 # return = '1' // no overflow b end overflow: # Else // Overflowed occured addi $t0, $zero, 2 # return = '2' // overflow end: li $v0, 10 syscall # system call(exit)