Advertisement
Guest User

Untitled

a guest
May 28th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2. A: .space 1024
  3. B: .space 1024
  4. r1: .space 4
  5. r2: .space 4
  6. r3: .space 4
  7. wynik: .space 1024
  8. str1:   .asciiz "Podaj liczbe kolumn macierzy A / liczbe wierszy macierzy B: "
  9. str2:   .asciiz "Podaj liczbe wierszy macierzy A: "
  10. str3:   .asciiz "Podaj liczbe kolumn macierzy B: "
  11. str4:   .asciiz "Podaj wartosci A:"
  12. str5:   .asciiz "Podaj wartosci B:"
  13. str6: .asciiz " "
  14. str7: .asciiz "\n"
  15. str8: .asciiz "Macierz A*B\n"
  16. .text
  17. .globl main
  18. main:
  19. li $v0, 4
  20. la $a0, str1
  21. syscall
  22. li $v0, 5
  23. syscall
  24. sw $v0, r1
  25. li $v0, 4                      
  26. la $a0, str2        
  27. syscall                        
  28. li $v0, 5
  29. syscall
  30. sw $v0, r2
  31. li $v0, 4                      
  32. la $a0, str3        
  33. syscall                        
  34. li $v0, 5
  35. syscall
  36. sw $v0, r3
  37. li $v0, 4                      
  38. la $a0, str4          
  39. syscall                        
  40. la $a0, A
  41. lw $a1, r1
  42. lw $t0, r2
  43. mul $a1, $a1, $t0
  44. jal wczytaj
  45. lw $a1, r1
  46. lw $a2, r2
  47. jal wypisz
  48. li $v0, 4                      
  49. la $a0, str5          
  50. syscall
  51. la $a0, B
  52. lw $a1, r1
  53. lw $t0, r3
  54. mul $a1, $a1, $t0
  55. jal wczytaj
  56. lw $a1, r3
  57. lw $a2, r1
  58. jal wypisz
  59. la $s0, A
  60. la $s1, B
  61. lw $s2, r1
  62. lw $s3, r2
  63. lw $s4, r3
  64. la $s5, wynik
  65. jal licz
  66. li $v0, 4
  67. la $a0, str8
  68. syscall
  69. la $a0, wynik
  70. lw $a1, r3
  71. lw $a2, r2
  72. jal wypisz
  73. la $v0, 10
  74. syscall
  75.  
  76.  
  77. # s0 - adres pierwszej mac
  78. # s1 - adres drugiej
  79. # s2 - szer 1 / wys 2
  80. # s3 - wys 1
  81. # s4 - szer 2
  82. # s5 - adres wyn
  83. licz:
  84. li $t0, 0 # licznik wys wyn
  85. l1:
  86. beq $t0, $s3, e1
  87. li $t1, 0 # licznik szer wyn
  88. l2:
  89. beq $t1, $s4, e2
  90. li $t2, 0
  91. li $t3, 0 # aij
  92. l3:
  93. beq $t2, $s2, e3
  94. mul $t4, $s2, $t0
  95. add $t4, $t4, $t2
  96. sll $t4, $t4, 2
  97. add $t4, $t4, $s0
  98. lw $t5, 0($t4)
  99. mul $t4, $s4, $t2
  100. add $t4, $t4, $t1
  101. sll $t4, $t4, 2
  102. add $t4, $t4, $s1
  103. lw $t6, 0($t4)
  104. mul $t5, $t5, $t6
  105. add $t3, $t3, $t5
  106. add $t2, $t2, 1
  107. j l3
  108. e3:
  109. mul $t2, $t0, $s4
  110. add $t2, $t2, $t1
  111. sll $t2, $t2, 2
  112. add $t2, $t2, $s5
  113. sw $t3, 0($t2)
  114. add $t1, $t1, 1
  115. j l2
  116. e2:
  117. add $t0, $t0, 1
  118. j l1
  119. e1:
  120. jr $ra
  121.  
  122.  
  123. wczytaj:
  124. li $t0, 0
  125. loop:
  126. beq $t0, $a1, end
  127. li $v0, 5
  128. syscall
  129. mulo $t2, $t0, 4
  130. add $t2, $t2, $a0
  131. sw $v0, 0($t2)
  132. add $t0, $t0, 1
  133. j loop
  134. end:
  135. jr $ra
  136. # a0 - adres, a1 - liczba kolumn, a2 - liczba wierszy
  137. wypisz:
  138. li $t1, 0 #licznik wierszy
  139. move $t2, $a0
  140. loop1:
  141. li $t0, 0 #licznik kolumn
  142. beq $t1, $a2, end1
  143. loop2:
  144. beq $t0, $a1, end2
  145. mul $t3, $t1, $a1
  146. add $t3, $t3, $t0
  147. mulo $t3, $t3, 4
  148. add $t3, $t3, $t2
  149. lw $a0, 0($t3)
  150. li $v0, 1
  151. syscall
  152. la $a0, str6
  153. li $v0, 4
  154. syscall
  155. add $t0, $t0, 1
  156. j loop2
  157. end2:
  158. la $a0, str7
  159. li $v0, 4
  160. syscall
  161. add $t1, $t1, 1
  162. j loop1
  163. end1:
  164. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement