; Zadatak: Napišite program koji sortira niz bojeva koji počinju 
;  na memorijskoj lokaciji 100(16). Sortirani niz podataka mora
;  biti pohranjen na mjestu originalnog niza. Broj podataka u 
;  bloku je fiksno zadan i iznosi 10.

;**************************
;* Data block bubble sort *
;**************************
        `ORG    0
        MOV     R5, #1<8        ;adresa bloka podataka

loop1   MOV     R4, R5          ;kopiraj je u R4
        MOV     R6, #%D 9       ;broj podataka za sortiranje
        MOV     R3, #0          ;zastavica zamjene

loop2   LDR     R0, [R4], #4    ;ucitaj podatak1
        LDR     R1, [R4]        ;ucitaj slijedeci podatak (podatak2)
        CMP     R0, R1          ;usporedi podatke
        Ble     nochg           ;ako ne treba zamjena, idi na nochg
chg     STR     R1, [R4, #-4]   ;spremi podatak2 na mjesto podatak1
        STR     R0, [R4]        ;spremi podatak1 na mjesto podatak2
        MOV     R3, #1          ;postavi zastavicu zamjene
nochg   SUBs    R6, R6, #1      ;smanji R6 za 1
        Bne     loop2           ;ako nije 0 petljaj 2. petlju

        TEQ     R3, #1          ;provjeri zastavicu promjene
        Beq     loop1           ;ako je bilo promjene petljaj 1. petlju

        HALT                    ;inace, kraj

        `ORG    100
        DW      1A, -10F, 0, 45, 0FFFF27, -F2678, 45, 20, -20, 1A
        `END