diff --git a/.gitignore b/.gitignore index 04b92c0..dc76150 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,4 @@ Primer/ #Ignorej sictools sictools.jar #ignorej ukaze za sic/xe -Appendix_A_thru_C.pdf -rek_sum.asm \ No newline at end of file +Appendix_A_thru_C.pdf \ No newline at end of file diff --git a/ass1/Rekurzija/FA.dev b/ass1/Rekurzija/FA.dev index ab52712..2d79237 100644 --- a/ass1/Rekurzija/FA.dev +++ b/ass1/Rekurzija/FA.dev @@ -1,4 +1,4 @@ -10 +1 5 -6 +7 0 diff --git a/ass1/Rekurzija/fak.asm b/ass1/Rekurzija/fak.asm index a6dbc50..d28c81c 100644 --- a/ass1/Rekurzija/fak.asm +++ b/ass1/Rekurzija/fak.asm @@ -1,5 +1,5 @@ prog START 0 - JSUB sinit + +JSUB sinit LDA #5 JSUB fa WD #1 diff --git a/ass1/Rekurzija/rek.asm b/ass1/Rekurzija/rek.asm index 33b96d1..5e41f0b 100644 --- a/ass1/Rekurzija/rek.asm +++ b/ass1/Rekurzija/rek.asm @@ -1,34 +1,16 @@ 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 +loop RD #0xFA + COMP #1 JLT halt - JSUB fa . Sicer izračunamo (A)! - WD #1 . Zapišemo na std izhod - CLEAR B - CLEAR A - J loop . Gremo prebrat naslednji vhod + JSUB fa + WD #1 + CLEAR A + J loop -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 STB @stkp JSUB spush @@ -41,7 +23,7 @@ fa STL @stkp MULR B, A -faExit JSUB spop +faExit JSUB spop LDB @stkp JSUB spop LDL @stkp @@ -73,5 +55,5 @@ spop . stkp-- stkp WORD 0 stk RESW 1000 stkA WORD 0 -tmp WORD 0 + END rek \ No newline at end of file