SHARE
TWEET

Untitled

a guest Jul 1st, 2019 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .global sortuj              !
  2. .proc 4                 !
  3.                     !
  4. sortuj:                 !
  5.     save %sp, -96, %sp      ! przesuniecie okienka
  6.                     !
  7. sortuj_petla:               ! for(i=n; i>0; --i)
  8.     call min            ! poszukiwanie minimum do zamian (od aktualnego t)
  9.     ld [%i0], %l0           ! pobranie *t , gdzie t - na poczatku wsakzuje na tab[0]
  10.     swap [%l6], %l0         ! zamiana aktualnego *t z znalezionym minimum
  11.     st %l0, [%i0]           ! zapamietanie *t pod nowym adresem
  12.     subcc %i1, 1,  %i1      ! --i - dec lincznika  
  13.     bg sortuj_petla         !
  14.     inc 4, %i0              ! ++t - nastepny element tablicy (4, bo int), dzieki potokowi instr. sie wykona, a to ze pozniej nie przeszkadza
  15.                             !
  16.     ret                     !
  17.     restore                 ! odtworzenie okienka
  18.                             !
  19.                             !
  20.                             !
  21.                             !
  22.                             !
  23.                             !
  24. min:                        !
  25.     mov %i1, %l3            ! k = i - licznik petli mini
  26.     mov %i0, %l4            ! z = t - adres od ktorego przeszukiwac tablice
  27.     mov %l4, %l6            ! indeks_min - indeks minimum wzgledem tab[i]
  28.     mov %l0, %l5            ! temp = *z - poczatkowe minimum (%l0 == z == tab[i])
  29. min_petla:                  ! for(k=i-1; k>0; --k)
  30.     subcc %l3, 1, %l3       ! --k  ;; bo 1 element obsluzono przed petla
  31.     ble min_koniec          ! czy przeszukano min po wsszystkich elememtach (od i do n-1)
  32.     inc 4, %l4              ! ++z , 4 bo to adres na int ; instrukcja specjalnie wstawiona za skokiem zeby nie tracic czasu na nop
  33.     ld [%l4], %l7           !
  34.     cmp %l5, %l7            ! if(temp > tab[z])
  35.     ble min_petla           !
  36.         nop                 ! nie bylo instrukcji ktora moglaby sie wykonac niezaleznie od skoku
  37.         ld [%l4], %l5       ! temp = tab[z]
  38.         mov %l4, %l6        ! indeks_min
  39.     ba min_petla            !
  40.     nop                     !
  41.                             !
  42. min_koniec:                 ! zakonczenie
  43.     retl                    !
  44.     nop
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top