Advertisement
D_Pain

slti_broken.s

Mar 4th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. .data
  2. saved_ret_pc: .word 0
  3. yes_error: .asciiz "Failure!\n"
  4. no_error: .asciiz "No Error!\n"
  5. .text
  6. .globl main
  7.  
  8. # Commands to verify
  9. # arithmetic: addu, addiu
  10. # logical: and, or, andi
  11. # compare: slt, slti
  12. # control: beq, bne, j
  13. #
  14. # broken:
  15. # slti negative cases
  16. #
  17. #
  18. # working:
  19. # slti all other cases
  20. #
  21.  
  22. main:
  23. sw $31 saved_ret_pc
  24.  
  25. # if slti works
  26. case1:
  27. # $s0 = 1
  28. addiu $s0 $0 2
  29.  
  30. # $s0 < 5
  31. slti $s1 $s0 5
  32. bne $s1 1 error
  33.  
  34. j case2
  35.  
  36. # if slti case2 works
  37. case2:
  38. # $s0 = 5
  39. addiu $s0 $0 5
  40. slti $s1 $s0 3
  41. bne $s1 0 error
  42.  
  43. j case3
  44.  
  45. # slti large test case1
  46. case3:
  47. # $s0 = 32766
  48. addiu $s0 $0 32766
  49. slti $s1 $s0 32767
  50. bne $s1 1 error
  51.  
  52. j case4
  53.  
  54. # slti large test case2
  55. case4:
  56. # $s0 = 32767
  57. addiu $s0 $0 32767
  58. slti $s1 $s0 32766
  59. bne $s1 0 error
  60.  
  61. j case5
  62.  
  63. # slti negative test case1
  64. case5:
  65. # $s0 = -10
  66. addiu $s0 $0 -10
  67. slti $s1 $s0 -15
  68. bne $s1 0 error
  69.  
  70. j case6
  71.  
  72. # slti negative test case2
  73. case6:
  74. # $s0 = -15
  75. addiu $s0 $0 -15
  76. slti $s1 $s0 -10
  77. bne $s1 1 error
  78.  
  79. j finish
  80.  
  81. #No failure found. Return from main
  82. return:
  83. lw $31 saved_ret_pc
  84. jr $31 # Return from main
  85.  
  86.  
  87. error:
  88. #Print failure reason
  89. li $v0 4
  90. la $a0 yes_error
  91. syscall
  92.  
  93. j return
  94.  
  95. finish:
  96. li $v0 4
  97. la $a0 no_error
  98. syscall
  99.  
  100. j return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement