Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- A: .space 416 ;deklaracja tablicy N*4 pozycji
- Ns: .word 15
- Np: .word 2
- G: .word 17
- I: .word 0
- .text
- lw r20, Ns
- lw r21, Np
- lw r22, G
- lw r23, I
- addi r18, r0, 0
- ; PRZYPISANIE DO TABLICY
- zapis_tablica:
- addi r24, r0, 10
- mult r1, r24, r23 ;10*I
- mult r1, r1, r21 ;(10*I)*Np
- addi r24, r0, 76 ;
- addi r2, r24, 38 ;76+38
- addi r2, r2, 5 ;(76+38)+5
- add r2, r2, r20 ;(76+38+5)+Ns
- subi r2, r2, 95 ;(76+38+5+Ns)-95
- addi r24, r0, 65 ;
- sub r3, r24, r22 ;65-G
- sub r2, r2, r3 ;(76+38+5+Ns-95)-(65-G)
- add r1, r1, r2 ;(10*I*Np)+(76+38+5+Ns-95-(65-G))
- sw A(r18), r1 ;zapisz pod r18 - A[i]
- addi r23, r23, 1 ;I=I+1
- addi r18, r18, 4 ;A[i]->A[i+1]
- seqi r25, r23, 104 ;if(r23==104)R25=1
- beqz r25, zapis_tablica ;jump if(r25==0)
- ; SZUKANIE MAx
- addi r18, r0, 4 ;
- addi r23, r0, 0 ; wyzerowanie I
- lw r28, A+4 ;r28 - max
- addi r29, r0, 0 ;r29 - roznica
- addi r30, r0, 0 ;r30 - srednia
- addi r31, r0, 0 ;r31 - mediana
- skok2:
- lw r5, A(r18) ; pobieramy pierwszy element tablicy
- ;max
- sgt r19, r5, r28 ; if(r5 > r28)r19==1 (r5=A[0], r6=A[1])
- beqz r19, mniejsza ; if(r19==0)skocz do skok 3
- add r28, r0, r5 ; nowa wartosc maksymalna
- mniejsza:
- ;roznica
- sub r29, r29, r5 ; r29 - A[i]
- ;srednia
- add r30, r30, r5 ; r30 + A[i]
- ;inkremenacja
- addi r23, r23, 1 ; I++
- addi r18, r18, 4 ; A[i+1]
- seqi r25, r23, 104 ; if(i==104)r25 = 1
- beqz r25, skok2 ; jump if(r25==0)
- ;obliczanie sredniej
- div r30, r30, r23 ; r30 / N_(I+1)
- ;obliczanie mediany
- addi r18, r0, 416 ; ostatni element
- addi r6, r0, 2
- div r7, r18, r6 ; r7 = ostatni/2
- addi r8, r7, 4
- lw r9, A(r7)
- lw r10, A(r8)
- add r11, r9, r10
- div r31, r11, r6 ; wyznaczenie mediany
- trap 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement