;****************************** ;* 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