fakuleta part of rekurzija.asm finished
This commit is contained in:
parent
43c366151e
commit
8854ec93a2
1 changed files with 57 additions and 0 deletions
57
vaja2/sklad/rekurzija.asm
Normal file
57
vaja2/sklad/rekurzija.asm
Normal file
|
|
@ -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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue