Advertisement
SIKER_98

#AoK2#zad5

May 19th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. .data
  2. A: .space 416 ;deklaracja tablicy N*4 pozycji
  3. Ns: .word 15
  4. Np: .word 2
  5. G: .word 17
  6. I: .word 0
  7.  
  8. .text
  9.  
  10. lw r20, Ns
  11. lw r21, Np
  12. lw r22, G
  13. lw r23, I
  14. addi r18, r0, 0
  15.  
  16. ; PRZYPISANIE DO TABLICY
  17.  
  18. zapis_tablica:
  19. addi r24, r0, 10
  20. mult r1, r24, r23 ;10*I
  21. mult r1, r1, r21 ;(10*I)*Np
  22.  
  23. addi r24, r0, 76 ;
  24. addi r2, r24, 38 ;76+38
  25. addi r2, r2, 5 ;(76+38)+5
  26. add r2, r2, r20 ;(76+38+5)+Ns
  27. subi r2, r2, 95 ;(76+38+5+Ns)-95
  28. addi r24, r0, 65 ;
  29. sub r3, r24, r22 ;65-G
  30. sub r2, r2, r3 ;(76+38+5+Ns-95)-(65-G)
  31.  
  32. add r1, r1, r2 ;(10*I*Np)+(76+38+5+Ns-95-(65-G))
  33.  
  34. sw A(r18), r1 ;zapisz pod r18 - A[i]
  35. addi r23, r23, 1 ;I=I+1
  36. addi r18, r18, 4 ;A[i]->A[i+1]
  37. seqi r25, r23, 104 ;if(r23==104)R25=1
  38. beqz r25, zapis_tablica ;jump if(r25==0)
  39.  
  40.  
  41. ; SZUKANIE MAx
  42. addi r18, r0, 4 ;
  43. addi r23, r0, 0 ; wyzerowanie I
  44.  
  45. lw r28, A+4 ;r28 - max
  46. addi r29, r0, 0 ;r29 - roznica
  47. addi r30, r0, 0 ;r30 - srednia
  48. addi r31, r0, 0 ;r31 - mediana
  49.  
  50. skok2:
  51. lw r5, A(r18) ; pobieramy pierwszy element tablicy
  52.  
  53. ;max
  54. sgt r19, r5, r28 ; if(r5 > r28)r19==1 (r5=A[0], r6=A[1])
  55. beqz r19, mniejsza ; if(r19==0)skocz do skok 3
  56. add r28, r0, r5 ; nowa wartosc maksymalna
  57.  
  58. mniejsza:
  59. ;roznica
  60. sub r29, r29, r5 ; r29 - A[i]
  61. ;srednia
  62. add r30, r30, r5 ; r30 + A[i]
  63.  
  64. ;inkremenacja
  65. addi r23, r23, 1 ; I++
  66. addi r18, r18, 4 ; A[i+1]
  67. seqi r25, r23, 104 ; if(i==104)r25 = 1
  68. beqz r25, skok2 ; jump if(r25==0)
  69.  
  70. ;obliczanie sredniej
  71. div r30, r30, r23 ; r30 / N_(I+1)
  72.  
  73. ;obliczanie mediany
  74. addi r18, r0, 416 ; ostatni element
  75. addi r6, r0, 2
  76. div r7, r18, r6 ; r7 = ostatni/2
  77. addi r8, r7, 4
  78.  
  79. lw r9, A(r7)
  80. lw r10, A(r8)
  81. add r11, r9, r10
  82.  
  83. div r31, r11, r6 ; wyznaczenie mediany
  84.  
  85. trap 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement