changed polySubrutine.asm so it uses loops

This commit is contained in:
Jaka Furlan 2025-10-22 15:56:33 +02:00
parent 055d1a8c8d
commit f59c93b770

View file

@ -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