64 lines
1.2 KiB
NASM
64 lines
1.2 KiB
NASM
poly START 0
|
|
start LDA x
|
|
STA arg1
|
|
JSUB startSubrutine
|
|
LDA subRez
|
|
STA rez
|
|
|
|
halt J halt
|
|
END start
|
|
|
|
.subrutina za izračun tega polinoma v točki arg1
|
|
startSubrutine STA regA
|
|
STB regB
|
|
STT regT
|
|
STS regS .shranimo registre
|
|
|
|
LDA x0 .pristejemo x0 v 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
|
|
|
|
LDA regA .obnovimo registre
|
|
LDB regB
|
|
LDT regT
|
|
LDS regS
|
|
|
|
RSUB
|
|
|
|
.polinom
|
|
x0 WORD 5
|
|
WORD 4
|
|
WORD 3
|
|
WORD 2
|
|
WORD 1
|
|
|
|
.tocka
|
|
x WORD 2
|
|
|
|
.rezultat
|
|
rez RESW 1
|
|
|
|
.parameter subrutine
|
|
arg1 RESW 1
|
|
|
|
.rezultat subrutine
|
|
subRez RESW 1
|
|
|
|
.registri
|
|
regA RESW 1
|
|
regB RESW 1
|
|
regT RESW 1
|
|
regS RESW 1
|