;******************************
;* Glavni program - 3 zadatak * 
;******************************
        `ORG    0
        MOV     R13, #1<12      ;0x1000 stog
        MOV     R1, #5<8        ;0x500 - adresa bloka

LOOP    LDR     R0, [R1], #4    ;ucitaj broj
        TEQ     R0, #0          ;da li je 0?
        Beq     END
        ANDs    R2, R0, #1      ;provjeri da li je paran?
        Bne     LOOP            ;nije paran
        BL      FX              ;racunaj F(x)
        STR     R0, [R1, #-4]   ;spremi rezultat natrag u niz
        B       LOOP

END     HALT

;********************************
;* Potprogram za racunanje F(x) *
;********************************
        `ORG    50
FX      STMfd   R13!, {R1, R2}  ;push

        MOV     R2, #%D 10      ;konstanta za mnozenje
        MUL     R1, R0, R2      ;R1 = R0 * 10
        MOV     R1, R1, LSR #5  ;R1 = R1 / 32 (shift za 5 mjesta)
        MLA     R0, R0, R0, R1  ;R0 = R0 * R0 + R1

        LDMfd   R13!, {R1, R2}  ;pop
        MOV     PC, LR          ;ret

        `ORG    500
        DW      1, 2, 10, 64, 0A0, 0FE, 0

        `END