Advertisement
Guest User

Untitled

a guest
Jul 1st, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. lis $5
  2. .word print
  3. loop:
  4. lw $4,0($1) ; load word at $1
  5. sw $31,0($30)
  6. lis $31
  7. .word 4
  8. sub $30,$30,$31
  9. jalr $5
  10. lis $31
  11. .word 4
  12. add $30,$30,$31
  13. add $1,$1,$31
  14. lw $31,0($30)
  15. subi $2,$2,1
  16. bne $2,$0,loop
  17. jr $31
  18.  
  19.  
  20.  
  21.  
  22. ; pr_int: prints out an integer value
  23. ; input: $4
  24. ; locals: $8, $9, $10, $11
  25. pr_int: lis $8 ; set up $8 for output
  26. .word 0xffff000c
  27. addi $9, $4, 0 ; set up value in $9
  28. addi $11, $0, 0 ; set up counter in $11
  29. slt $10, $9, $0 ; check for negative number
  30. beq $10, $0, comp
  31. addi $10, $0, 0x2D ; print minus sign
  32. sw $10, 0($8)
  33. sub $9, $0, $9 ; change $9 to positive
  34. comp: addi $11, $11, 1 ; increment counter
  35. addi $10, $0, 10
  36. div $9, $10 ; divide by 10
  37. mfhi $10
  38. addi $30, $30, -4 ; store remainder on stack
  39. sw $10, 0($30)
  40. mflo $9 ; check result and restart loop
  41. bne $9, $0, comp
  42. output: lw $10, 0($30) ; start output from stack
  43. addi $30, $30, 4
  44. addi $10, $10, 0x30 ; convert to ASCII code
  45. sw $10, 0($8)
  46. addi $11, $11, -1
  47. bne $11, $0, output
  48. addi $10, $0, 0xA ; print LF
  49. sw $10, 0($8)
  50. jr $31
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement