Spremenu FA.dev pa ene pomozne programe ki sm jih uporabljou dodal
This commit is contained in:
parent
101414bad7
commit
7cb6dcee10
3 changed files with 174 additions and 0 deletions
82
ass1/Rekurzija/rek_simplified.asm
Normal file
82
ass1/Rekurzija/rek_simplified.asm
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
rek START 0
|
||||
JSUB sinit
|
||||
LDT #10
|
||||
|
||||
|
||||
loop JSUB read . Pretvorimo iz ASCII v stevilko
|
||||
COMP #1 . Če je (A) <= 1 končamo, ker 0!=1!=1
|
||||
JLT halt
|
||||
JSUB fa . Sicer izračunamo (A)!
|
||||
+STCH @screen
|
||||
LDA screen
|
||||
ADD #1
|
||||
STA screen
|
||||
CLEAR B
|
||||
CLEAR A
|
||||
J loop . Gremo prebrat naslednji vhod
|
||||
|
||||
halt J halt
|
||||
|
||||
read RD #0xFA . V A se shrani naslednji prebrani znak
|
||||
COMP #0xA
|
||||
JEQ rExit . Če preberemo newline gremo na izhod
|
||||
SUB #48 . Sicer iz ascii kode dobimo stevko
|
||||
LDB tmp
|
||||
MULR T, B . tmp *= 10
|
||||
ADDR A, B . tmp += A
|
||||
STB tmp
|
||||
J read
|
||||
|
||||
rExit LDA tmp . Shranimo prebrano stevilko v A
|
||||
LDB #0
|
||||
STB tmp . Ponastavimo tmp
|
||||
RSUB
|
||||
|
||||
fa STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
. Base case
|
||||
COMP #2
|
||||
JLT faExit
|
||||
RMO A, B
|
||||
SUB #1
|
||||
JSUB fa
|
||||
MULR B, A
|
||||
|
||||
|
||||
faExit JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
RSUB
|
||||
|
||||
|
||||
sinit STA stkA
|
||||
LDA #stk
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spush . stkp++
|
||||
STA stkA
|
||||
LDA stkp
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spop . stkp--
|
||||
STA stkA
|
||||
LDA stkp
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
screen WORD 0xb800
|
||||
stkp WORD 0
|
||||
stk RESW 1000
|
||||
stkA WORD 0
|
||||
tmp WORD 0
|
||||
END rek
|
||||
Loading…
Add table
Add a link
Reference in a new issue