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