From 27b8de1bc21056e2f587fcec2ece19c917f1079f Mon Sep 17 00:00:00 2001 From: "aljazbrodar." Date: Sat, 15 Nov 2025 13:46:22 +0100 Subject: [PATCH] final hw push --- ass1/bonus/a.out | Bin 48840 -> 0 bytes ass1/bonus/test.asm | 6 - ass1/rekurzija/FA.dev | 5 + ass1/rekurzija/rekurzija.asm | 133 +++++++++++++++++++++++ ass1/vaje/osnove/.sub_rou_horner.asm.swp | Bin 0 -> 12288 bytes ass1/vaje/osnove/arith.asm | 33 ++++++ ass1/vaje/osnove/arithr.asm | 40 +++++++ ass1/vaje/osnove/horner.asm | 29 +++++ ass1/vaje/osnove/horner.log | 15 +++ ass1/vaje/osnove/horner.lst | 29 +++++ ass1/vaje/osnove/horner.obj | 4 + ass1/vaje/osnove/poly.asm | 39 +++++++ ass1/vaje/osnove/poly.log | 15 +++ ass1/vaje/osnove/poly.lst | 39 +++++++ ass1/vaje/osnove/poly.obj | 5 + ass1/vaje/osnove/primer.asm | 11 ++ ass1/vaje/osnove/sub_rou_horner.asm | 47 ++++++++ ass1/vaje/osnove/sub_rou_horner.log | 20 ++++ ass1/vaje/osnove/sub_rou_horner.lst | 49 +++++++++ ass1/vaje/osnove/sub_rou_horner.obj | 5 + ass1/vaje/osnove/test.asm | 14 +++ ass1/vaje/osnove/test.log | 17 +++ ass1/vaje/osnove/test.lst | 14 +++ ass1/vaje/osnove/test.obj | 3 + ass1/vaje/sklad/FA.dev | 5 + ass1/vaje/sklad/rekurzija.asm | 133 +++++++++++++++++++++++ ass1/vaje/{ => sklad}/stack.asm | 0 ass1/vaje/sklad/stack.log | 17 +++ ass1/vaje/sklad/stack.lst | 33 ++++++ ass1/vaje/sklad/stack.obj | 4 + ass1/vaje/sklad/test.asm | 16 +++ ass1/vaje/vhod_izhod/AA.dev | 1 + ass1/vaje/vhod_izhod/cat.asm | 10 ++ ass1/vaje/vhod_izhod/echo.asm | 103 ++++++++++++++++++ ass1/vaje/vhod_izhod/print.asm | 25 +++++ ass1/vaje/zaslon/screen.asm | 105 ++++++++++++++++++ 36 files changed, 1018 insertions(+), 6 deletions(-) delete mode 100755 ass1/bonus/a.out delete mode 100644 ass1/bonus/test.asm create mode 100644 ass1/rekurzija/FA.dev create mode 100644 ass1/rekurzija/rekurzija.asm create mode 100644 ass1/vaje/osnove/.sub_rou_horner.asm.swp create mode 100644 ass1/vaje/osnove/arith.asm create mode 100644 ass1/vaje/osnove/arithr.asm create mode 100644 ass1/vaje/osnove/horner.asm create mode 100644 ass1/vaje/osnove/horner.log create mode 100644 ass1/vaje/osnove/horner.lst create mode 100644 ass1/vaje/osnove/horner.obj create mode 100644 ass1/vaje/osnove/poly.asm create mode 100644 ass1/vaje/osnove/poly.log create mode 100644 ass1/vaje/osnove/poly.lst create mode 100644 ass1/vaje/osnove/poly.obj create mode 100644 ass1/vaje/osnove/primer.asm create mode 100644 ass1/vaje/osnove/sub_rou_horner.asm create mode 100644 ass1/vaje/osnove/sub_rou_horner.log create mode 100644 ass1/vaje/osnove/sub_rou_horner.lst create mode 100644 ass1/vaje/osnove/sub_rou_horner.obj create mode 100644 ass1/vaje/osnove/test.asm create mode 100644 ass1/vaje/osnove/test.log create mode 100644 ass1/vaje/osnove/test.lst create mode 100644 ass1/vaje/osnove/test.obj create mode 100644 ass1/vaje/sklad/FA.dev create mode 100644 ass1/vaje/sklad/rekurzija.asm rename ass1/vaje/{ => sklad}/stack.asm (100%) create mode 100644 ass1/vaje/sklad/stack.log create mode 100644 ass1/vaje/sklad/stack.lst create mode 100644 ass1/vaje/sklad/stack.obj create mode 100644 ass1/vaje/sklad/test.asm create mode 100644 ass1/vaje/vhod_izhod/AA.dev create mode 100644 ass1/vaje/vhod_izhod/cat.asm create mode 100644 ass1/vaje/vhod_izhod/echo.asm create mode 100644 ass1/vaje/vhod_izhod/print.asm create mode 100644 ass1/vaje/zaslon/screen.asm diff --git a/ass1/bonus/a.out b/ass1/bonus/a.out deleted file mode 100755 index 1c5668fc95320554456d4689380ae7a40ca913b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48840 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 diff --git a/ass1/bonus/test.asm b/ass1/bonus/test.asm deleted file mode 100644 index ecd1951..0000000 --- a/ass1/bonus/test.asm +++ /dev/null @@ -1,6 +0,0 @@ -test START 0 - LDA #-1 - LDS #2 - RMO S, A -halt J halt - END test diff --git a/ass1/rekurzija/FA.dev b/ass1/rekurzija/FA.dev new file mode 100644 index 0000000..cb3856f --- /dev/null +++ b/ass1/rekurzija/FA.dev @@ -0,0 +1,5 @@ +1 +9 +5 +10 +0 diff --git a/ass1/rekurzija/rekurzija.asm b/ass1/rekurzija/rekurzija.asm new file mode 100644 index 0000000..c7f7447 --- /dev/null +++ b/ass1/rekurzija/rekurzija.asm @@ -0,0 +1,133 @@ +prog START 0 + . inicializiraj sklad + JSUB stackinit + . beri stevke do newline (\n = 10), nato evalviraj stevilo + LDX #1 . zacnemo z 1 za lazje preverjanje pogoja v loop_e +loop RD device . FA.dev + COMP #10 . newline + JEQ evaluate + SUB #48 . ASCII koda za 0 + +STCH stevke, X + TIX #-1 . primerjava TIX tu nima pomena + J loop +evaluate . T zacasno hrani rezultat; na koncu v A + LDT #0 + . S hrani potence st. deset + LDS #1 + . zmanjsaj X za 1 + RMO X, A + SUB #1 + RMO A, X + . nalozi stevko, pomnozi s S, shrani oz. pristej rez. v T +loop_e LDCH stevke, X + MULR S, A + ADDR A, T + . povecaj potenco + RMO S, A + MUL #10 + RMO A, S + . zmanjsaj X + RMO X, A + SUB #1 + RMO A, X + . ce je X = 0, si prebral vse stevke + COMP #0 + JGT loop_e + . ce je rezultat nic koncaj sicer izracunaj fakulteto in preberi naslednjo vrstico + RMO T, A + COMP #0 + JEQ HALT + JSUB fakulteta_r + . izpisi rezultat na standard output + CLEAR S + JSUB izpis + CLEAR A + J prog +HALT J HALT + END prog + +izpis LDX #1 +loop_i RMO A, S . kopiraj stevilo v S + . pridobi stevko, z mod 10 + DIV #10 + MUL #10 + RMO A, T . odstevanec gre v T + RMO S, A + SUBR T, A + STCH stevke_r, X + TIX #-1 . primerjava nima pomena + RMO S, A + DIV #10 + COMP #0 + JGT loop_i + . izpis iz pomnilnika + RMO X, A + SUB #1 + RMO A, X +loop_ii LDCH stevke_r, X + ADD #48 . pretvori v ascii + WD #1 + RMO X, A + SUB #1 + RMO A, X + COMP #0 + JGT loop_ii + . izpis newline + LDA #10 + WD #1 + RSUB + +fakulteta_r +STL @stackptr . link reg. na sklad + JSUB stackpush + +STA @stackptr . parameter na sklad + JSUB stackpush + + COMP #1 . robni primer n = 1 + JEQ exit + 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 RMO A, B . premakni vrednost podroblema v B + JSUB stackpop + +LDA @stackptr . nalozi parameter klicujoce 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 + +temp WORD 0 +device BYTE X'FA' +stevke BYTE 100 +stevke_r BYTE 100 + +oldvalue WORD 0 +stackptr WORD 0 +stack RESW 1000 diff --git a/ass1/vaje/osnove/.sub_rou_horner.asm.swp b/ass1/vaje/osnove/.sub_rou_horner.asm.swp new file mode 100644 index 0000000000000000000000000000000000000000..d2f12c23e174e5a3d12438fca5a3f2233aee4c2f GIT binary patch literal 12288 zcmeI2zi-n(6vtnYSU@d^pX-ARM2P%o+Ddc*xpJfih}7uilwGk};8 zEG$TfzX7qbv9Yl6SHQ-M5MN(Hzzn2}pm)+IclYkyv+v`{irr$nQseFXI-#8=djI_E zAnTo=<2543KX9f=d`WXd)px=rNmzcU3l>Z-x)-ZaAsVT|#5r(E1r-Hq;uWH?+Y8mW zH&9{Vg?T5szr3bohygKh1OwxEKX-lA-YBgXlkCjpOMLc>eT0pYA_l~O7!U(uKn#ch zF(3xS!2e<(9<9(L9Ol^kKv(Ad%5VLADxDY*17bi7hygJm2E>3E5CdXB42S_S@DCbr z`b3>oqLXX5dHnzX@DMQ(>LC znF{?Wb7N_yE~rn+y8TjZw_(-GRO CF{G&g literal 0 HcmV?d00001 diff --git a/ass1/vaje/osnove/arith.asm b/ass1/vaje/osnove/arith.asm new file mode 100644 index 0000000..eb0d6c0 --- /dev/null +++ b/ass1/vaje/osnove/arith.asm @@ -0,0 +1,33 @@ +arith START 0 + LDA x + ADD y + STA sum + + LDA x + SUB y + STA diff + + LDA x + MUL y + STA prod + + LDA x + DIV y + STA quot + + LDA y + MUL quot + STA mod + LDA x + SUB mod + STA mod +HALT J HALT + END arith + +x WORD 11 +y WORD 5 +sum RESW 1 +diff RESW 1 +prod RESW 1 +quot RESW 1 +mod RESW 1 diff --git a/ass1/vaje/osnove/arithr.asm b/ass1/vaje/osnove/arithr.asm new file mode 100644 index 0000000..6b5ab46 --- /dev/null +++ b/ass1/vaje/osnove/arithr.asm @@ -0,0 +1,40 @@ +arithr START 0 + LDS #11 + LDT #5 + + LDA ZERO + ADDR S, A + ADDR T, A + STA sum + + LDA ZERO + ADDR S, A + SUBR T, A + STA diff + + LDA ZERO + ADDR S, A + MULR T, A + STA prod + + LDA ZERO + ADDR S, A + DIVR T, A + STA quot + + LDA ZERO + ADDR S, A +LOOP SUBR T, A + COMPR A, T + JGT LOOP + JEQ LOOP + STA mod +HALT J HALT + END arithr + +ZERO WORD 0 +sum RESW 1 +diff RESW 1 +prod RESW 1 +quot RESW 1 +mod RESW 1 diff --git a/ass1/vaje/osnove/horner.asm b/ass1/vaje/osnove/horner.asm new file mode 100644 index 0000000..993946d --- /dev/null +++ b/ass1/vaje/osnove/horner.asm @@ -0,0 +1,29 @@ +HORNER START 0 + . Pretvorimo polinom x^4 + 2x^3 + 3x^2 + 4x+5 v Hornerjevo obliko + . b_n = a_n = 1 + . b_n-1 = 2 + b_n * x = 2 + 1 * x = 4 + . b_n-2 = 3 + b_n-1 * x = 3 + 4 * x = 11 + . b_n-3 = 4 + b_n-2 * x = 4 + 11 * x = 26 + . b_n-4 = 5 + b_n-3 * x = 5 + 26 * x = 57 + . kjer x = 2 + + LDA #1 + + MUL x + ADD #2 + + MUL x + ADD #3 + + MUL x + ADD #4 + + MUL x + ADD #5 + + STA res +HALT J HALT + END HORNER + +x WORD 2 +res RESW 1 diff --git a/ass1/vaje/osnove/horner.log b/ass1/vaje/osnove/horner.log new file mode 100644 index 0000000..75cbf53 --- /dev/null +++ b/ass1/vaje/osnove/horner.log @@ -0,0 +1,15 @@ +***** Section ***** +Stats: size=39 blocks=39 symbols=4 literals=0 relocations=0 +Blocks + name start size #ins #dir #sto + 00000 00027 11 3 1 +Symbols + name hex dec scope kind type description + HALT 00001E 30 local relative code label + HORNER 000000 0 exported relative code label + res 000024 36 local relative data label + x 000021 33 local relative data label +Literals + label definition +Relocations + address length flag symbol diff --git a/ass1/vaje/osnove/horner.lst b/ass1/vaje/osnove/horner.lst new file mode 100644 index 0000000..63134ed --- /dev/null +++ b/ass1/vaje/osnove/horner.lst @@ -0,0 +1,29 @@ +00000 HORNER START 0 + . Pretvorimo polinom x^4 + 2x^3 + 3x^2 + 4x+5 v Hornerjevo obliko + . b_n = a_n = 1 + . b_n-1 = 2 + b_n * x = 2 + 1 * x = 4 + . b_n-2 = 3 + b_n-1 * x = 3 + 4 * x = 11 + . b_n-3 = 4 + b_n-2 * x = 4 + 11 * x = 26 + . b_n-4 = 5 + b_n-3 * x = 5 + 26 * x = 57 + . kjer x = 2 + +00000 010001 LDA #1 + +00003 23201B MUL x +00006 190002 ADD #2 + +00009 232015 MUL x +0000C 190003 ADD #3 + +0000F 23200F MUL x +00012 190004 ADD #4 + +00015 232009 MUL x +00018 190005 ADD #5 + +0001B 0F2006 STA res +0001E 3F2FFD HALT J HALT +00021 END HORNER + +00021 000002 x WORD 2 +00024 000000 res RESW 1 diff --git a/ass1/vaje/osnove/horner.obj b/ass1/vaje/osnove/horner.obj new file mode 100644 index 0000000..84c6af5 --- /dev/null +++ b/ass1/vaje/osnove/horner.obj @@ -0,0 +1,4 @@ +HHORNER000000000027 +T0000001E01000123201B19000223201519000323200F1900042320091900050F2006 +T00001E063F2FFD000002 +E000000 diff --git a/ass1/vaje/osnove/poly.asm b/ass1/vaje/osnove/poly.asm new file mode 100644 index 0000000..b0df1e4 --- /dev/null +++ b/ass1/vaje/osnove/poly.asm @@ -0,0 +1,39 @@ +POLY START 0 + .x^4 + LDA x + MUL x + MUL x + MUL x + STA res + CLEAR A + .+2x^3 + LDA x + MUL x + MUL x + MUL #2 + ADD res + STA res + CLEAR A + .+3x^2 + LDA x + MUL x + MUL #3 + ADD res + STA res + CLEAR A + .+4x + LDA x + MUL #4 + ADD res + STA res + CLEAR A + .+5 + LDA res + ADD #5 + STA res + CLEAR A +HALT J HALT + END POLY + +x WORD 2 +res RESW 1 diff --git a/ass1/vaje/osnove/poly.log b/ass1/vaje/osnove/poly.log new file mode 100644 index 0000000..1025c0a --- /dev/null +++ b/ass1/vaje/osnove/poly.log @@ -0,0 +1,15 @@ +***** Section ***** +Stats: size=88 blocks=88 symbols=4 literals=0 relocations=0 +Blocks + name start size #ins #dir #sto + 00000 00058 29 3 1 +Symbols + name hex dec scope kind type description + HALT 00004F 79 local relative code label + POLY 000000 0 exported relative code label + res 000055 85 local relative data label + x 000052 82 local relative data label +Literals + label definition +Relocations + address length flag symbol diff --git a/ass1/vaje/osnove/poly.lst b/ass1/vaje/osnove/poly.lst new file mode 100644 index 0000000..289f5bd --- /dev/null +++ b/ass1/vaje/osnove/poly.lst @@ -0,0 +1,39 @@ +00000 POLY START 0 + . x^4 +00000 03204F LDA x +00003 23204C MUL x +00006 232049 MUL x +00009 232046 MUL x +0000C 0F2046 STA res +0000F B400 CLEAR A + . +2x^3 +00011 03203E LDA x +00014 23203B MUL x +00017 232038 MUL x +0001A 210002 MUL #2 +0001D 1B2035 ADD res +00020 0F2032 STA res +00023 B400 CLEAR A + . +3x^2 +00025 03202A LDA x +00028 232027 MUL x +0002B 210003 MUL #3 +0002E 1B2024 ADD res +00031 0F2021 STA res +00034 B400 CLEAR A + . +4x +00036 032019 LDA x +00039 210004 MUL #4 +0003C 1B2016 ADD res +0003F 0F2013 STA res +00042 B400 CLEAR A + . +5 +00044 03200E LDA res +00047 190005 ADD #5 +0004A 0F2008 STA res +0004D B400 CLEAR A +0004F 3F2FFD HALT J HALT +00052 END POLY + +00052 000002 x WORD 2 +00055 000000 res RESW 1 diff --git a/ass1/vaje/osnove/poly.obj b/ass1/vaje/osnove/poly.obj new file mode 100644 index 0000000..85921f8 --- /dev/null +++ b/ass1/vaje/osnove/poly.obj @@ -0,0 +1,5 @@ +HPOLY 000000000058 +T0000001E03204F23204C2320492320460F2046B40003203E23203B2320382100021B +T00001E1E20350F2032B40003202A2320272100031B20240F2021B400032019210004 +T00003C191B20160F2013B40003200E1900050F2008B4003F2FFD000002 +E000000 diff --git a/ass1/vaje/osnove/primer.asm b/ass1/vaje/osnove/primer.asm new file mode 100644 index 0000000..b35a406 --- /dev/null +++ b/ass1/vaje/osnove/primer.asm @@ -0,0 +1,11 @@ +primer START 0 +. kaj naredi naslednji programček? +first LDA #42 + ADD x + STA x +. kaj dela naslednji ukaz +halt J halt +. podatki +x WORD 22 + END first + diff --git a/ass1/vaje/osnove/sub_rou_horner.asm b/ass1/vaje/osnove/sub_rou_horner.asm new file mode 100644 index 0000000..2a5dea1 --- /dev/null +++ b/ass1/vaje/osnove/sub_rou_horner.asm @@ -0,0 +1,47 @@ +MAIN START 0 + .nastavi X register za prehod cez tabelo + LDX counter + .izracun vrednosti za vsak x v tabeli in +LOOP STA ctx_a + JSUB HORNER_X + LDA counter + ADD #3 + STA counter + LDX counter + COMP #bytes_len + JLT LOOP + +HALT J HALT + END MAIN + +HORNER_X LDA #1 + + MUL in, X + ADD #2 + + MUL in, X + ADD #3 + + MUL in, X + ADD #4 + + MUL in, X + ADD #5 + + STA in, X + + .povrni kontekst pred skokom v subrutino + LDA ctx_a + + RSUB + +.tabela x-ov polinoma +in WORD 0 + WORD 2 + WORD 3 +.parametri +lastin EQU * +bytes_len EQU lastin - in +counter WORD 0 +.kontest +ctx_a RESW 1 diff --git a/ass1/vaje/osnove/sub_rou_horner.log b/ass1/vaje/osnove/sub_rou_horner.log new file mode 100644 index 0000000..b272c91 --- /dev/null +++ b/ass1/vaje/osnove/sub_rou_horner.log @@ -0,0 +1,20 @@ +***** Section ***** +Stats: size=75 blocks=75 symbols=9 literals=0 relocations=0 +Blocks + name start size #ins #dir #sto + 00000 0004B 23 6 1 +Symbols + name hex dec scope kind type description + HALT 00001C 28 local relative code label + HORNER_X 00001F 31 local relative code label + LOOP 00000E 14 local relative code label + MAIN 000000 0 exported relative code label + bytes_len 000000 0 local relative notlabel lasttin-in + in 000042 66 local relative data label + lastin 000045 69 local absolute notlabel * + res 000048 72 local relative data label + words_len 000045 69 local relative data label +Literals + label definition +Relocations + address length flag symbol diff --git a/ass1/vaje/osnove/sub_rou_horner.lst b/ass1/vaje/osnove/sub_rou_horner.lst new file mode 100644 index 0000000..13d1256 --- /dev/null +++ b/ass1/vaje/osnove/sub_rou_horner.lst @@ -0,0 +1,49 @@ +00000 MAIN START 0 + . doloci dolzino v word-ih +00000 012FFD LDA #bytes_len +00003 250003 DIV #3 +00006 0F203C STA words_len +00009 B400 CLEAR A + . nastavi X register za prehod cez tabelo +0000B 050000 LDX #0 + . izracun vrednosti za vsak x v tabeli in +0000E 3F200E LOOP J HORNER_X +00011 2F2031 TIX words_len +00014 010003 LDA #3 +00017 9801 MULR A,X +00019 3B2FF2 JLT LOOP + +0001C 3F2FFD HALT J HALT +0001F END MAIN + +0001F 010001 HORNER_X LDA #1 + +00022 23A01D MUL in,X +00025 190002 ADD #2 + +00028 23A017 MUL in,X +0002B 190003 ADD #3 + +0002E 23A011 MUL in,X +00031 190004 ADD #4 + +00034 23A00B MUL in,X +00037 190005 ADD #5 + +0003A 0FA005 STA in,X + +0003D B400 CLEAR A + +0003F 4F0000 RSUB + + . tabela x-ov polinoma +00042 000002 in WORD 2 + . WORD 5 + . WORD 42 + . WORD 2 + . parametri +00045 lastin EQU * +00045 bytes_len EQU lasttin-in +00045 000001 words_len WORD 1 + +00048 000000 res RESW 1 diff --git a/ass1/vaje/osnove/sub_rou_horner.obj b/ass1/vaje/osnove/sub_rou_horner.obj new file mode 100644 index 0000000..d612bf6 --- /dev/null +++ b/ass1/vaje/osnove/sub_rou_horner.obj @@ -0,0 +1,5 @@ +HMAIN 00000000004B +T0000001E012FFD2500030F203CB4000500003F200E2F203101000398013B2FF23F2F +T00001E1EFD01000123A01D19000223A01719000323A01119000423A00B1900050FA0 +T00003C0C05B4004F0000000002000001 +E000000 diff --git a/ass1/vaje/osnove/test.asm b/ass1/vaje/osnove/test.asm new file mode 100644 index 0000000..98be971 --- /dev/null +++ b/ass1/vaje/osnove/test.asm @@ -0,0 +1,14 @@ +PRG START 0 + LDA #bytes_len + DIV #3 + LDA bytes_len +HALT J HALT + END PRG + + +tab WORD 1 + WORD 2 + WORD 3 +test EQU * +bytes_len EQU test - tab +tab2 WORD 1 diff --git a/ass1/vaje/osnove/test.log b/ass1/vaje/osnove/test.log new file mode 100644 index 0000000..569956b --- /dev/null +++ b/ass1/vaje/osnove/test.log @@ -0,0 +1,17 @@ +***** Section ***** +Stats: size=24 blocks=24 symbols=6 literals=0 relocations=0 +Blocks + name start size #ins #dir #sto + 00000 00018 4 8 0 +Symbols + name hex dec scope kind type description + HALT 000009 9 local relative code label + PRG 000000 0 exported relative code label + bytes_len 000009 9 local absolute notlabel test-tab + tab 00000C 12 local relative data label + tab2 000015 21 local relative data label + test 000015 21 local absolute notlabel * +Literals + label definition +Relocations + address length flag symbol diff --git a/ass1/vaje/osnove/test.lst b/ass1/vaje/osnove/test.lst new file mode 100644 index 0000000..536c85e --- /dev/null +++ b/ass1/vaje/osnove/test.lst @@ -0,0 +1,14 @@ +00000 PRG START 0 +00000 010009 LDA #bytes_len +00003 250003 DIV #3 +00006 030009 LDA bytes_len +00009 3F2FFD HALT J HALT +0000C END PRG + + +0000C 000001 tab WORD 1 +0000F 000002 WORD 2 +00012 000003 WORD 3 +00015 test EQU * +00015 bytes_len EQU test-tab +00015 000001 tab2 WORD 1 diff --git a/ass1/vaje/osnove/test.obj b/ass1/vaje/osnove/test.obj new file mode 100644 index 0000000..2b85359 --- /dev/null +++ b/ass1/vaje/osnove/test.obj @@ -0,0 +1,3 @@ +HPRG 000000000018 +T000000180100092500030300093F2FFD000001000002000003000001 +E000000 diff --git a/ass1/vaje/sklad/FA.dev b/ass1/vaje/sklad/FA.dev new file mode 100644 index 0000000..cb3856f --- /dev/null +++ b/ass1/vaje/sklad/FA.dev @@ -0,0 +1,5 @@ +1 +9 +5 +10 +0 diff --git a/ass1/vaje/sklad/rekurzija.asm b/ass1/vaje/sklad/rekurzija.asm new file mode 100644 index 0000000..c7f7447 --- /dev/null +++ b/ass1/vaje/sklad/rekurzija.asm @@ -0,0 +1,133 @@ +prog START 0 + . inicializiraj sklad + JSUB stackinit + . beri stevke do newline (\n = 10), nato evalviraj stevilo + LDX #1 . zacnemo z 1 za lazje preverjanje pogoja v loop_e +loop RD device . FA.dev + COMP #10 . newline + JEQ evaluate + SUB #48 . ASCII koda za 0 + +STCH stevke, X + TIX #-1 . primerjava TIX tu nima pomena + J loop +evaluate . T zacasno hrani rezultat; na koncu v A + LDT #0 + . S hrani potence st. deset + LDS #1 + . zmanjsaj X za 1 + RMO X, A + SUB #1 + RMO A, X + . nalozi stevko, pomnozi s S, shrani oz. pristej rez. v T +loop_e LDCH stevke, X + MULR S, A + ADDR A, T + . povecaj potenco + RMO S, A + MUL #10 + RMO A, S + . zmanjsaj X + RMO X, A + SUB #1 + RMO A, X + . ce je X = 0, si prebral vse stevke + COMP #0 + JGT loop_e + . ce je rezultat nic koncaj sicer izracunaj fakulteto in preberi naslednjo vrstico + RMO T, A + COMP #0 + JEQ HALT + JSUB fakulteta_r + . izpisi rezultat na standard output + CLEAR S + JSUB izpis + CLEAR A + J prog +HALT J HALT + END prog + +izpis LDX #1 +loop_i RMO A, S . kopiraj stevilo v S + . pridobi stevko, z mod 10 + DIV #10 + MUL #10 + RMO A, T . odstevanec gre v T + RMO S, A + SUBR T, A + STCH stevke_r, X + TIX #-1 . primerjava nima pomena + RMO S, A + DIV #10 + COMP #0 + JGT loop_i + . izpis iz pomnilnika + RMO X, A + SUB #1 + RMO A, X +loop_ii LDCH stevke_r, X + ADD #48 . pretvori v ascii + WD #1 + RMO X, A + SUB #1 + RMO A, X + COMP #0 + JGT loop_ii + . izpis newline + LDA #10 + WD #1 + RSUB + +fakulteta_r +STL @stackptr . link reg. na sklad + JSUB stackpush + +STA @stackptr . parameter na sklad + JSUB stackpush + + COMP #1 . robni primer n = 1 + JEQ exit + 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 RMO A, B . premakni vrednost podroblema v B + JSUB stackpop + +LDA @stackptr . nalozi parameter klicujoce 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 + +temp WORD 0 +device BYTE X'FA' +stevke BYTE 100 +stevke_r BYTE 100 + +oldvalue WORD 0 +stackptr WORD 0 +stack RESW 1000 diff --git a/ass1/vaje/stack.asm b/ass1/vaje/sklad/stack.asm similarity index 100% rename from ass1/vaje/stack.asm rename to ass1/vaje/sklad/stack.asm diff --git a/ass1/vaje/sklad/stack.log b/ass1/vaje/sklad/stack.log new file mode 100644 index 0000000..d9f8cde --- /dev/null +++ b/ass1/vaje/sklad/stack.log @@ -0,0 +1,17 @@ +***** Section ***** +Stats: size=3031 blocks=3031 symbols=6 literals=0 relocations=0 +Blocks + name start size #ins #dir #sto + 00000 00BD7 9 4 1 +Symbols + name hex dec scope kind type description + HALT 000003 3 local relative code label + oldvalue 000019 25 local relative data label + prog 000000 0 exported relative code label + stack 00001F 31 local relative data label + stackinit 000006 6 local relative code label + stackptr 00001C 28 local relative data label +Literals + label definition +Relocations + address length flag symbol diff --git a/ass1/vaje/sklad/stack.lst b/ass1/vaje/sklad/stack.lst new file mode 100644 index 0000000..f43395a --- /dev/null +++ b/ass1/vaje/sklad/stack.lst @@ -0,0 +1,33 @@ +00000 prog START 0 +00000 4B2003 JSUB stackinit + +00003 3F2FFD HALT J HALT +00006 END prog + + + + + + + + +00006 0F2010 stackinit STA oldvalue +00009 B400 CLEAR A +0000B 012011 LDA #stack +0000E 0F200B STA stackptr +00011 B400 CLEAR A +00013 032003 LDA oldvalue +00016 4F0000 RSUB + + + . stackpush + . RSUB + + + . stackpop + . RSUB + + +00019 000000 oldvalue WORD 0 +0001C 000000 stackptr WORD 0 +0001F 00....00 stack RESW 1000 diff --git a/ass1/vaje/sklad/stack.obj b/ass1/vaje/sklad/stack.obj new file mode 100644 index 0000000..5f5ef5f --- /dev/null +++ b/ass1/vaje/sklad/stack.obj @@ -0,0 +1,4 @@ +Hprog 000000000BD7 +T0000001E4B20033F2FFD0F2010B4000120110F200BB4000320034F00000000000000 +T00001E0100 +E000000 diff --git a/ass1/vaje/sklad/test.asm b/ass1/vaje/sklad/test.asm new file mode 100644 index 0000000..69e78c7 --- /dev/null +++ b/ass1/vaje/sklad/test.asm @@ -0,0 +1,16 @@ +test START 0 + RD device + RD device + + RD device + RD device + RD device + + RD device + RD device + RD device + RD device +halt J halt + END test + +device WORD X'FA' diff --git a/ass1/vaje/vhod_izhod/AA.dev b/ass1/vaje/vhod_izhod/AA.dev new file mode 100644 index 0000000..4aceb7d --- /dev/null +++ b/ass1/vaje/vhod_izhod/AA.dev @@ -0,0 +1 @@ +SIC/XE diff --git a/ass1/vaje/vhod_izhod/cat.asm b/ass1/vaje/vhod_izhod/cat.asm new file mode 100644 index 0000000..4de8e68 --- /dev/null +++ b/ass1/vaje/vhod_izhod/cat.asm @@ -0,0 +1,10 @@ +CAT START 0 +LOOP RD vhod + WD izhod + J LOOP +HALT J HALT + END CAT + +vhod BYTE 0 +izhod BYTE 1 + diff --git a/ass1/vaje/vhod_izhod/echo.asm b/ass1/vaje/vhod_izhod/echo.asm new file mode 100644 index 0000000..193d922 --- /dev/null +++ b/ass1/vaje/vhod_izhod/echo.asm @@ -0,0 +1,103 @@ +ECHO START 0 + LDA #3643 + STA number + JSUB char + JSUB nl + JSUB char + JSUB nl + +LDA #test_niz + JSUB string + JSUB nl + LDA number + JSUB num + JSUB nl + LDA #23 + JSUB num + JSUB nl +HALT J HALT + END ECHO + +.izpis znaka +char WD #1 + RSUB + +.izpis newline +nl +STA old_A + CLEAR A + + LDCH newline + WD #1 + + +LDA old_A + RSUB + +.izpis niza +string +STA strptr +loop_niz CLEAR A + LDCH @strptr + WD #1 + COMP #0 + JEQ out + +LDA strptr + ADD #1 + +STA strptr + J loop_niz +out RSUB + +.desetiski izpis stevila v A iz HEX +.stevke pridobimo z mod 10, shranimo v tabelo, nato tabelo izpisemo v obratnem vrstnem redu +num LDX digits_ix + STA number + DIV #10 + STA quot + MUL #10 + STA subtrahend + LDA number + SUB subtrahend + STCH digits, X + LDA digits_ix + ADD #1 + STA digits_ix + LDA number + DIV #10 + COMP #0 + JGT num + .shrani stevec za X register in pa mejo len za naslednjo zanko loop_num + LDA digits_ix + STA len + SUB #1 + STA digits_ix + .izpis tabele v obratnem vrstnem redu +loop_num LDX digits_ix + LDCH digits, X + ADD #48 .stevke v ascii se zacnejo pri 48 + WD #1 + LDA digits_ix + SUB #1 + STA digits_ix + LDA i + ADD #1 + STA i + COMP len + JLT loop_num + + LDX #0 + LDA #0 + STA digits_ix + STA i + STA len + LDA number + RSUB + +old_A WORD 0 +newline BYTE 10 +test_niz BYTE C'hello world' + BYTE 0 +strptr WORD 0 +quot WORD 0 +subtrahend WORD 0 +number WORD 0 +digits RESB 100 +digits_ix WORD 0 +i WORD 0 +len WORD 0 diff --git a/ass1/vaje/vhod_izhod/print.asm b/ass1/vaje/vhod_izhod/print.asm new file mode 100644 index 0000000..6bd04ba --- /dev/null +++ b/ass1/vaje/vhod_izhod/print.asm @@ -0,0 +1,25 @@ +PRVI START 0 + LDX counter +loop LDA niz, X + WD device + LDA counter + ADD #3 + STA counter + LDX counter + COMP #bytes_len + JLT loop +HALT J HALT + END PRVI + + +counter WORD 0 +device BYTE X'AA' +niz WORD 83 .S + WORD 73 .I + WORD 67 .C + WORD 47 ./ + WORD 88 .X + WORD 69 .E + WORD 10 .newline +lastin EQU * +bytes_len EQU lastin - niz diff --git a/ass1/vaje/zaslon/screen.asm b/ass1/vaje/zaslon/screen.asm new file mode 100644 index 0000000..92321d3 --- /dev/null +++ b/ass1/vaje/zaslon/screen.asm @@ -0,0 +1,105 @@ +SCREEN START 0 + LDA #65 + JSUB scrfill + JSUB scrclear + LDA #77 + JSUB scrfill + JSUB scrclear + LDA #88 + JSUB scrfill + JSUB scrclear + LDA #99 + STA znak + LDA #25 + STA row + LDA #30 + STA col + JSUB printch + LDA #30 + STA row + JSUB printch +HALT J HALT + END SCREEN + +scrfill STA znak +loop_fill LDA y + MUL scrcols + ADD screen + ADD x + STA pix_ptr + LDA znak + STCH @pix_ptr + LDA x + ADD #1 + STA x + COMP scrcols + JLT loop_fill + CLEAR A + STA x + LDA y + ADD #1 + STA y + COMP scrrows + JLT loop_fill + + CLEAR A + STA x + STA y + LDA znak + RSUB + + +.address = screen + y * scrcols + x +scrclear STA old_val +loop_clear LDA y + MUL scrcols + ADD screen + ADD x + STA pix_ptr + CLEAR A + STCH @pix_ptr + LDA x + ADD #1 + STA x + COMP scrcols + JLT loop_clear + CLEAR A + STA x + LDA y + ADD #1 + STA y + COMP scrrows + JLT loop_clear + + CLEAR A + STA x + STA y + LDA old_val + RSUB + +printch STA old_val + LDA row + MUL scrcols + ADD screen + ADD col + STA pix_ptr + LDA znak + STCH @pix_ptr + + CLEAR A + LDA old_val + RSUB + + + +row WORD 0 +col WORD 0 +old_val WORD 0 +znak WORD 0 +x WORD 0 +y WORD 0 +pix_ptr WORD 0 +screen WORD X'00B800' +scrcols WORD 25 +scrrows WORD 80 +scrlen WORD 2000