Advertisement
Terrys

lab4_1

Jun 4th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. #################################################
  2. # #
  3. # lab4_1a.s #
  4. # stack exercise 1 (to be completed) #
  5. # #
  6. #################################################
  7. .text
  8. .globl __start
  9. __start: # execution starts here
  10.  
  11. # start of main program
  12. li $a0,-10 # Initialize variables
  13. li $a1,-30 #
  14. li $a2,120 #
  15. li $a3,200 #
  16.  
  17. li $s0,1
  18. li $s1,2
  19. li $s2,3
  20. li $s3,4
  21. li $s4,5
  22. li $s5,6
  23. li $s6,7
  24. li $s7,8
  25.  
  26. jal MinMax
  27.  
  28. move $t0,$v0
  29. move $t1,$v1
  30. la $a0,max
  31. li $v0,4
  32. syscall # display "Max is :"
  33. move $a0,$t0
  34. li $v0,1
  35. syscall # display max
  36. la $a0,endl
  37. li $v0,4
  38. syscall # display end of line
  39. la $a0,min
  40. li $v0,4
  41. syscall # display "Min is :"
  42. move $a0,$t1
  43. li $v0,1
  44. syscall # display min
  45. la $a0,endl
  46. li $v0,4
  47. syscall # display end of line
  48. Exit: li $v0,10
  49. syscall # exit
  50. # end of main program
  51.  
  52.  
  53. # start of procedure
  54. MinMax: addi $sp,$sp,-8
  55. sw $s0,0($sp)
  56. sw $s1,4($sp)
  57.  
  58. max1: move $s0,$a0 # hold max value
  59.  
  60. bge $s0,$a1,cont2
  61. move $s0,$a1
  62.  
  63. cont2: bge $s0,$a2,cont3
  64. move $s0,$a2
  65.  
  66. cont3: bge $s0,$a3,resMax
  67. move $s0,$a3
  68.  
  69. resMax: move $v1,$s0
  70.  
  71. min1: move $s1,$a0
  72.  
  73. ble $s1,$a0,cont4
  74. move $s1,$a0
  75.  
  76. cont4: ble $s1,$a1,cont5
  77. move $s1,$a1
  78.  
  79. cont5: ble $s1,$a2,cont6
  80. move $s1,$a2
  81.  
  82. cont6: ble $s1,$a3,resMin
  83. move $s1,$a3
  84.  
  85. resMin: move $v0,$s1
  86.  
  87. lw $s0,0($sp) #restore saved registers from stack
  88. lw $s1,4($sp)
  89. addi $sp,$sp,8
  90.  
  91. jr $ra
  92. # end of procedure
  93.  
  94. .data
  95. max: .asciiz "Max is : "
  96. min: .asciiz "Min is : "
  97. endl: .asciiz "\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement