Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. .data
  2. radiusString: .asciiz "\nPodaj promien kola "
  3. heightString: .asciiz "Podaj wysokosc walca "
  4. areaString: .asciiz "\nPole kola(PI*r*r) "
  5. oString: .asciiz "Obwod kola(2*PI*r) "
  6. volumeString: .asciiz "\nObjetosc walca(pole podstawy*h = PI*r*r*h) "
  7. totalAreaString: .asciiz "\nPole walca(obwod*h+2*pole podstawy = 2*PI*r*h+2*PI*r*r) "
  8. runString: .asciiz "\nPrzebieg numer "
  9. areaMaxString: .asciiz "\nMaksymalny pole "
  10. volumeMaxString: .asciiz "\nMaksymalna objetosc "
  11. areaMaxRunString: .asciiz "\nMaksymalny pole - przebieg numer "
  12. volumeMaxRunString: .asciiz "\nMaksymalna objetosc - przebieg numer "
  13. areaMinString: .asciiz "\nMinimalne pole "
  14. volumeMinString: .asciiz "\nMinimalna objetosc "
  15. areaMinRunString: .asciiz "\nMinimalne pole - przebieg numer "
  16. volumeMinRunString: .asciiz "\nMinimalna objetosc - przebieg numer "
  17. againString: .asciiz "\nPowtarzasz? 0 - koniec "
  18. .text
  19. li $t6, 1 # ustawienie rejestru na licznik powtórzeń
  20. li $t7, 0 # ustawienie rejestrów do wyszukania maksymalnych i miminalnych objętości i pól
  21. li $t8, 0
  22. li $t9, 0
  23. li $s0, 0
  24. li $s1, 0x7FFFFFFF
  25. li $s2, 0x7FFFFFFF
  26. li $s3, 0
  27. li $s4, 0
  28.  
  29. main:
  30. la $a0, runString # wypisanie runString
  31. li $v0, 4
  32. syscall
  33.  
  34. move $a0, $t6 # wypisanie licznika
  35. li $v0, 1
  36. syscall
  37.  
  38. la $a0, radiusString # wczytanie promienia
  39. li $v0, 4
  40. syscall
  41.  
  42. li $v0, 5 # wczytanie promienia
  43. syscall
  44.  
  45. mul $t0, $v0, 3 # 3 r
  46. mul $t1, $t0, 2 # obwód
  47. mul $t2, $t0, $v0 # pole
  48.  
  49. la $a0, heightString # wczytanie wysokości
  50. li $v0, 4
  51. syscall
  52. li $v0, 5
  53. syscall
  54. mul $t3, $v0, $t2 # objetosc
  55. mul $t4, $t2, 2 # 2 pola podstaw
  56. mul $t5, $t1, $v0 # pole powierchni bocznej
  57. add $t4, $t4, $t5 # pole powierchni całkowitej
  58.  
  59. la $a0, oString # wypisanie oString
  60. li $v0, 4
  61. syscall
  62. move $a0, $t1
  63. li $v0, 1
  64. syscall
  65.  
  66. la $a0, areaString # wypisanie areaString
  67. li $v0, 4
  68. syscall
  69. move $a0, $t2
  70. li $v0, 1
  71. syscall
  72.  
  73. la $a0, volumeString # wypisanie volumeString
  74. li $v0, 4
  75. syscall
  76. move $a0, $t3
  77. li $v0, 1
  78. syscall
  79.  
  80. la $a0, totalAreaString # wypisanie totalAreaString
  81. li $v0, 4
  82. syscall
  83. move $a0, $t4
  84. li $v0, 1
  85. syscall
  86.  
  87. la $a0, againString # pytanie czy ponawiasz
  88. li $v0, 4
  89. syscall
  90. li $v0, 5
  91. syscall
  92.  
  93. ble $t3, $t7, branchVolume
  94. move $t7, $t3 # v max nowe
  95. move $t9, $t6 # indeks v max
  96. branchVolume:
  97.  
  98. ble $t4, $t8, branchArea
  99. move $t8, $t4 # p max nowe
  100. move $s0, $t6 # indeks p max
  101. branchArea:
  102.  
  103. bge $t3, $s1, branchMinVolume
  104. move $s1, $t3 # v min nowe
  105. move $s3, $t6 # indeks v min
  106. branchMinVolume:
  107.  
  108. bge $t4, $s2, branchMinArea
  109. move $s2, $t4 # p min nowe
  110. move $s4, $t6 # indeks p min
  111. branchMinArea:
  112.  
  113. addi $t6, $t6, 1 # zwiększenie licznika
  114. #t3 ob, #t4 pole, t7 max v, t8 max p, max v indeks t9, p maks indeks s0
  115.  
  116.  
  117. bne $v0, $zero, main # 0 - koniec, inne wracamy do maina
  118.  
  119. la $a0, volumeMaxString # wypisanie volumeMaxString
  120. li $v0, 4
  121. syscall
  122. move $a0, $t7
  123. li $v0, 1
  124. syscall
  125.  
  126. la $a0, areaMaxString # wypisanie areaMaxString
  127. li $v0, 4
  128. syscall
  129. move $a0, $t8
  130. li $v0, 1
  131. syscall
  132.  
  133. la $a0, volumeMaxRunString # wypisanie volumeMaxRunString
  134. li $v0, 4
  135. syscall
  136. move $a0, $t9
  137. li $v0, 1
  138. syscall
  139.  
  140. la $a0, areaMaxRunString # wypisanie areaMaxRunString
  141. li $v0, 4
  142. syscall
  143. move $a0, $s0
  144. li $v0, 1
  145. syscall
  146.  
  147. la $a0, volumeMinString # wypisanie volumeMaxString
  148. li $v0, 4
  149. syscall
  150. move $a0, $s1
  151. li $v0, 1
  152. syscall
  153.  
  154. la $a0, areaMinString # wypisanie areaMaxString
  155. li $v0, 4
  156. syscall
  157. move $a0, $s2
  158. li $v0, 1
  159. syscall
  160.  
  161. la $a0, volumeMinRunString # wypisanie volumeMaxRunString
  162. li $v0, 4
  163. syscall
  164. move $a0, $s3
  165. li $v0, 1
  166. syscall
  167.  
  168. la $a0, areaMinRunString # wypisanie areaMaxRunString
  169. li $v0, 4
  170. syscall
  171. move $a0, $s4
  172. li $v0, 1
  173. syscall
  174.  
  175. li $v0, 10 # koniec
  176. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement