From 8854ec93a2513443f924f9d718eb4f9c9e0f0671 Mon Sep 17 00:00:00 2001 From: "aljazbrodar." Date: Fri, 7 Nov 2025 10:45:21 +0100 Subject: [PATCH] fakuleta part of rekurzija.asm finished --- vaja2/sklad/rekurzija.asm | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 vaja2/sklad/rekurzija.asm diff --git a/vaja2/sklad/rekurzija.asm b/vaja2/sklad/rekurzija.asm new file mode 100644 index 0000000..8448336 --- /dev/null +++ b/vaja2/sklad/rekurzija.asm @@ -0,0 +1,57 @@ +prog START 0 + JSUB stackinit + LDA #5 + JSUB fakulteta_r + LDA #10 + JSUB fakulteta_r +HALT J HALT + END prog + +fakulteta_r +STL @stackptr .link reg. na sklad + JSUB stackpush + +STA @stackptr .parameter na sklad + JSUB stackpush + + SUB #1 .pripravimo podproblem + COMP #1 .zaustavitveni pogoj + JEQ exit .ce je z.p. izpolnjen RSUB, v A je vrednost podproblema + JSUB fakulteta_r + +exit JSUB stackpop + RMO A, B .premakni vrednost podroblema v B + +LDA @stackptr .nalozi parameter klicujoče funkcije ("starša") + MULR B, A .pomnozi, shrani v A + JSUB stackpop + +LDL @stackptr + RSUB + +stackinit STA oldvalue + CLEAR A + LDA #stack + STA stackptr + CLEAR A + LDA oldvalue + RSUB + +stackpush STA oldvalue + CLEAR A + LDA stackptr + ADD #3 + STA stackptr + CLEAR A + LDA oldvalue + RSUB + +stackpop STA oldvalue + CLEAR A + LDA stackptr + SUB #3 + STA stackptr + CLEAR A + LDA oldvalue + RSUB + + +oldvalue WORD 0 +stackptr WORD 0 +stack RESW 1000