Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. .data
  2. array: .space 80 #array of 20 integers
  3. entryPrompt: .asciiz "\nEnter a number: "
  4. sPrompt: .asciiz "\nSmallest: "
  5. lPrompt: .asciiz "\nLargest: "
  6. dPrompt: .asciiz "\nNumbers divisble by 4: "
  7.  
  8. .globl main
  9. .text
  10. main: li $t0, 20 #t0 to track number entered
  11. la $t1, array #load starting address
  12. loopEntry: la $a0, entryPrompt
  13. li $v0, 4
  14. syscall
  15. li $v0, 5
  16. syscall
  17. sw $v0, 0($t1) #store the value
  18. add $t0, $t0, -1 #decrement the counter
  19. add $t1, $t1, 4
  20. bgtz $t0, loopEntry
  21.  
  22. la $a0, array
  23. jal smallestLargest
  24. move $a1, $v0 #move retVals out of v0 and v1
  25. move $a2, $v1
  26. la $a0, sPrompt #print prompt
  27. li $v0, 4
  28. syscall
  29. move $a0, $a1 #move smallest for print
  30. li $v0, 4
  31. syscall
  32. la $a0, lPrompt #print prompt
  33. li $v0, 4
  34. syscall
  35. move $a0, $a2 #move smallest for print
  36. li $v0, 4
  37. syscall
  38.  
  39. la $a0, array
  40. jal divisible #call method
  41. move $v1, $v0 #move retVal
  42. la $a0, dPrompt #print prompt
  43. li $v0, 4
  44. syscall
  45. move $a0, $v1 #print result
  46. li $v0, 4
  47. syscall
  48.  
  49. li $v0, 10 #exit
  50. syscall
  51.  
  52. smallestLargest: li $v0, 0 #v0 stores largest
  53. li $v1, 999 #v1 stores smallest
  54. li $t1, 20 #iterator
  55. loopsL: lw $t0, 0($a0) #load array
  56. bgt $v0, $t0, notLarge
  57. move $v0, $t0
  58. notLarge: blt $v1, $t0, notSmall
  59. move $v1, $t0
  60. notSmall: addi $a0, $a0, 4
  61. addi $t1, $t1, -1
  62. bgtz $t1, loopsL
  63. jr $ra
  64.  
  65. divisible: li $v0, 0 #v0 is the return val
  66. li $t0, 20 #iterator
  67. loopD: lw $t1, 0($a0) #load value into t1
  68. and $t1, $t1, 3 #and with 3
  69. bnez $t1, notD
  70. addi $v0, $v0, 1
  71. notD: addi $t0, $t0, -1
  72. addi $a0, $a0, 4
  73. bgtz $t0, loopD
  74. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement