Advertisement
D_Pain

bne_broken.s

Mar 4th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 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. # bne $0 9 branch
  16. #
  17. #
  18. # working:
  19. # bne $0 0 branch
  20. #
  21.  
  22. main:
  23. sw $31 saved_ret_pc
  24.  
  25. # if bne works
  26. case1:
  27. addiu $s0 $0 0
  28. bne $s0 0 error
  29. j case2
  30.  
  31. case2:
  32. addiu $s0 $0 1
  33. bne $s0 9 finish
  34.  
  35. j error
  36.  
  37. #No failure found. Return from main
  38. return:
  39. lw $31 saved_ret_pc
  40. jr $31 # Return from main
  41.  
  42.  
  43. error:
  44. #Print failure reason
  45. li $v0 4
  46. la $a0 yes_error
  47. syscall
  48.  
  49. j return
  50.  
  51. finish:
  52. li $v0 4
  53. la $a0 no_error
  54. syscall
  55.  
  56. j return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement