diff --git a/ass1/polySubrutine.asm b/ass1/polySubrutine.asm index 3376534..af8de5d 100644 --- a/ass1/polySubrutine.asm +++ b/ass1/polySubrutine.asm @@ -9,33 +9,25 @@ halt J halt END start .subrutina za izračun tega polinoma v točki arg1 -startSubrutine STA regA +startSubrutine STA regA STB regB STT regT - STT regS .shranimo registre + STS regS .shranimo registre LDA x0 .pristejemo x0 v A - LDB arg1 - LDS x - LDT x1 - MULR S, T - ADDR T, A .pristejemo x0 * x - - LDT x2 - MULR B, S .izracunamo x^2 - MULR S, T - ADDR T, A - - LDT x3 - MULR B, S .izracunamo x^3 - MULR S, T - ADDR T, A - - LDT x4 - MULR B, S .izracunamo x^4 - MULR S, T - ADDR T, A + LDX #3 .odmik v arrayu + LDS arg1 +loop LDT x0, X .preberemo x_n + MULR S, T .izračunamo x_n * x^n + ADDR T, A .pristejemo v vsoto + LDT arg1 + MULR T, S .zmožimo naslednjo potenco + LDT #3 + ADDR T, X .povečamo odmik + LDT #13 + COMPR T, X + JGT loop STA subRez .shranimo rez @@ -47,11 +39,11 @@ startSubrutine STA regA RSUB .polinom -x4 WORD 1 -x3 WORD 2 -x2 WORD 3 -x1 WORD 4 x0 WORD 5 + WORD 4 + WORD 3 + WORD 2 + WORD 1 .tocka x WORD 2