Compare commits

...

2 commits

Author SHA1 Message Date
Timon
c305a8bdb4 Poskusu dokoncat rekurzijo, neki ne dela, dosti imam 2025-11-10 15:11:43 +01:00
Timon
9f753e66c4 modified gitignore 2025-11-10 13:44:58 +01:00
4 changed files with 33 additions and 14 deletions

1
.gitignore vendored
View file

@ -4,3 +4,4 @@ Primer/
sictools.jar sictools.jar
#ignorej ukaze za sic/xe #ignorej ukaze za sic/xe
Appendix_A_thru_C.pdf Appendix_A_thru_C.pdf
rek_sum.asm

View file

@ -1,4 +1,4 @@
1 10
5 5
7 6
0 0

View file

@ -1,5 +1,5 @@
prog START 0 prog START 0
+JSUB sinit JSUB sinit
LDA #5 LDA #5
JSUB fa JSUB fa
WD #1 WD #1

View file

@ -1,15 +1,33 @@
rek START 0 rek START 0
JSUB sinit
LDT #10
loop RD #0xFA loop JSUB read . Pretvorimo iz ASCII v stevilko
COMP #1 COMP #1 . Če je (A) <= 1 končamo, ker 0!=1!=1
JLT halt JLT halt
JSUB fa JSUB fa . Sicer izračunamo (A)!
WD #1 WD #1 . Zapišemo na std izhod
CLEAR B
CLEAR A CLEAR A
J loop J loop . Gremo prebrat naslednji vhod
halt J halt halt J halt
read RD #0xFA
COMP #0xA
JEQ rExit . Če preberemo newline gremo na izhod
SUB #0x30 . 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
LDB #0
STB tmp
RSUB
fa STL @stkp fa STL @stkp
JSUB spush JSUB spush
STB @stkp STB @stkp
@ -55,5 +73,5 @@ spop . stkp--
stkp WORD 0 stkp WORD 0
stk RESW 1000 stk RESW 1000
stkA WORD 0 stkA WORD 0
tmp WORD 0
END rek END rek