;Zadatak:
;  Napisati potprogram koji provjerava da li je NBC broj zapisan
;  u registru R0 primaran broj ili nije. 
;  Ako je primaran, tada taj potprogram mora u registru R0 vratiti
;  broj 1. Ako priljeni NBC broj nije primaran, tada u registru
;  R0 vratiti broj 0.
;  Pretpostavite da je potprogram za dijeljenje veæ napisan.


;************************************
;* Check prime numbers              *
;* Parameters:                      *
;*    R0 - number to check          *
;* Return:                          *
;*    R0 - 1(prime) or 0(not prime) *
;************************************
        `ORG    50
        STMfd   R13!, {R1, R2, R3, R4, R14}     ;push

        MOV     R2, #2          ;provjera pocinje od 2
        MOV     R3, R0, LSR #1  ;i ide do R3 = R0 / 2 
        MOV     R4, R0          ;sacuvaj originalni broj u R4

prloop  CMP     R2, R3          ;da li smo gotovi?
        Bhs     endprim         ;gotovi smo - broj je primaran

        MOV     R0, R4          ;djeljenik
        MOV     R1, R2          ;djeljitelj
        BL      divide          ;podijeli R0 / R1, rez. R0, ost. R1

        TEQ     R1, #0          ;da li je ostatak 0?
        Beq     notprim         ;nije primaran

        ADD     R2, R2, #1      ;povecaj R1
        B       prloop

notprim MOV     R0, #0          ;broj nije primaran, vrati 0
        B       endall

endprim MOV     R0, #1          ;broj je primaran, vrati 1

endall  LDMfd   R13!, {R1, R2, R3, R4, R14}     ;pop
        MOV     PC, LR          ;ret

;***************************
;* Divide numbers          *
;* Parameters:             *
;*    R0 - dividend        *
;*    R1 - divisor         *
;* Result:                 *
;*    R0 - quotient        *
;*    R1 - rest            *
;***************************
        `ORG    100
divide  ORR     R0, R0, R0
        ;...

        `END