Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- saved_ret_pc: .word 0
- yes_error: .asciiz "Failure!\n"
- no_error: .asciiz "No Error!\n"
- .text
- .globl main
- # Commands to verify
- # arithmetic: addu, addiu
- # logical: and, or, andi
- # compare: slt, slti
- # control: beq, bne, j
- #
- # broken:
- # slti negative cases
- #
- #
- # working:
- # slti all other cases
- #
- main:
- sw $31 saved_ret_pc
- # if slti works
- case1:
- # $s0 = 1
- addiu $s0 $0 2
- # $s0 < 5
- slti $s1 $s0 5
- bne $s1 1 error
- j case2
- # if slti case2 works
- case2:
- # $s0 = 5
- addiu $s0 $0 5
- slti $s1 $s0 3
- bne $s1 0 error
- j case3
- # slti large test case1
- case3:
- # $s0 = 32766
- addiu $s0 $0 32766
- slti $s1 $s0 32767
- bne $s1 1 error
- j case4
- # slti large test case2
- case4:
- # $s0 = 32767
- addiu $s0 $0 32767
- slti $s1 $s0 32766
- bne $s1 0 error
- j case5
- # slti negative test case1
- case5:
- # $s0 = -10
- addiu $s0 $0 -10
- slti $s1 $s0 -15
- bne $s1 0 error
- j case6
- # slti negative test case2
- case6:
- # $s0 = -15
- addiu $s0 $0 -15
- slti $s1 $s0 -10
- bne $s1 1 error
- j finish
- #No failure found. Return from main
- return:
- lw $31 saved_ret_pc
- jr $31 # Return from main
- error:
- #Print failure reason
- li $v0 4
- la $a0 yes_error
- syscall
- j return
- finish:
- li $v0 4
- la $a0 no_error
- syscall
- j return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement