repo update

This commit is contained in:
aljazbrodar. 2026-01-17 19:43:56 +01:00
parent 5591686517
commit c56b6c92db
25 changed files with 194 additions and 252 deletions

View file

@ -0,0 +1,36 @@
***** Section <default> *****
Stats: size=3292 blocks=3292 symbols=20 literals=0 relocations=5
Blocks
name start size #ins #dir #sto
<default> 00000 00CDC 101 8 1
Symbols
name hex dec scope kind type description
HALT 000059 89 local relative code label
device 00011B 283 local relative data label
evaluate 00001C 28 local relative code label
exit 0000C4 196 local relative code label
fakulteta_r 0000A4 164 local relative code label
izpis 00005C 92 local relative code label
loop 000006 6 local relative code label
loop_e 000029 41 local relative code label
loop_i 00005F 95 local relative code label
loop_ii 000085 133 local relative code label
oldvalue 00011E 286 local relative data label
prog 000000 0 exported relative code label
stack 000124 292 local relative data label
stackinit 0000D9 217 local relative code label
stackpop 000102 258 local relative code label
stackptr 000121 289 local relative data label
stackpush 0000EC 236 local relative code label
stevke 00011C 284 local relative data label
stevke_r 00011D 285 local relative data label
temp 000118 280 local relative data label
Literals
label definition
Relocations
address length flag symbol
00013 5
000A5 5
000AC 5
000CA 5
000D3 5

View file

@ -0,0 +1,132 @@
00000 prog START 0
. inicializiraj sklad
00000 4B20D6 JSUB stackinit
. beri stevke do newline (\n = 10), nato evalviraj stevilo
00003 050001 LDX #1 . zacnemo z 1 za lazje preverjanje pogoja v loop_e
00006 DB2112 loop RD device . FA.dev
00009 29000A COMP #10 . newline
0000C 33200D JEQ evaluate
0000F 1D0030 SUB #48 . ASCII koda za 0
00012 5790011C +STCH stevke,X
00016 2D0FFF TIX #-1 . primerjava TIX tu nima pomena
00019 3F2FEA J loop
0001C 750000 evaluate LDT #0
. S hrani potence st. deset
0001F 6D0001 LDS #1
. zmanjsaj X za 1
00022 AC10 RMO X,A
00024 1D0001 SUB #1
00027 AC01 RMO A,X
. nalozi stevko, pomnozi s S, shrani oz. pristej rez. v T
00029 53A0F0 loop_e LDCH stevke,X
0002C 9840 MULR S,A
0002E 9005 ADDR A,T
. povecaj potenco
00030 AC40 RMO S,A
00032 21000A MUL #10
00035 AC04 RMO A,S
. zmanjsaj X
00037 AC10 RMO X,A
00039 1D0001 SUB #1
0003C AC01 RMO A,X
. ce je X = 0, si prebral vse stevke
0003E 290000 COMP #0
00041 372FE5 JGT loop_e
. ce je rezultat nic koncaj sicer izracunaj fakulteto in preberi naslednjo vrstico
00044 AC50 RMO T,A
00046 290000 COMP #0
00049 33200D JEQ HALT
0004C 4B2055 JSUB fakulteta_r
. izpisi rezultat na standard output
0004F B440 CLEAR S
00051 4B2008 JSUB izpis
00054 B400 CLEAR A
00056 3F2FA7 J prog
00059 3F2FFD HALT J HALT
0005C END prog
0005C 050001 izpis LDX #1
0005F AC04 loop_i RMO A,S . kopiraj stevilo v S
. pridobi stevko, z mod 10
00061 25000A DIV #10
00064 21000A MUL #10
00067 AC05 RMO A,T . odstevanec gre v T
00069 AC40 RMO S,A
0006B 9450 SUBR T,A
0006D 57A0AD STCH stevke_r,X
00070 2D0FFF TIX #-1 . primerjava nima pomena
00073 AC40 RMO S,A
00075 25000A DIV #10
00078 290000 COMP #0
0007B 372FE1 JGT loop_i
. izpis iz pomnilnika
0007E AC10 RMO X,A
00080 1D0001 SUB #1
00083 AC01 RMO A,X
00085 53A095 loop_ii LDCH stevke_r,X
00088 190030 ADD #48 . pretvori v ascii
0008B DD0001 WD #1
0008E AC10 RMO X,A
00090 1D0001 SUB #1
00093 AC01 RMO A,X
00095 290000 COMP #0
00098 372FEA JGT loop_ii
. izpis newline
0009B 01000A LDA #10
0009E DD0001 WD #1
000A1 4F0000 RSUB
000A4 16100121 fakulteta_r +STL @stackptr . link reg. na sklad
000A8 4B2041 JSUB stackpush
000AB 0E100121 +STA @stackptr . parameter na sklad
000AF 4B203A JSUB stackpush
000B2 290001 COMP #1 . robni primer n = 1
000B5 33200C JEQ exit
000B8 1D0001 SUB #1 . pripravimo podproblem
000BB 290001 COMP #1 . zaustavitveni pogoj
000BE 332003 JEQ exit . ce je z. p. izpolnjen RSUB, v A je vrednost podproblema
000C1 4B2FE0 JSUB fakulteta_r
000C4 AC03 exit RMO A,B . premakni vrednost podroblema v B
000C6 4B2039 JSUB stackpop
000C9 02100121 +LDA @stackptr . nalozi parameter klicujoce funkcije ("starša")
000CD 9830 MULR B,A . pomnozi, shrani v A
000CF 4B2030 JSUB stackpop
000D2 0A100121 +LDL @stackptr
000D6 4F0000 RSUB
000D9 0F2042 stackinit STA oldvalue
000DC B400 CLEAR A
000DE 012043 LDA #stack
000E1 0F203D STA stackptr
000E4 B400 CLEAR A
000E6 032035 LDA oldvalue
000E9 4F0000 RSUB
000EC 0F202F stackpush STA oldvalue
000EF B400 CLEAR A
000F1 03202D LDA stackptr
000F4 190003 ADD #3
000F7 0F2027 STA stackptr
000FA B400 CLEAR A
000FC 03201F LDA oldvalue
000FF 4F0000 RSUB
00102 0F2019 stackpop STA oldvalue
00105 B400 CLEAR A
00107 032017 LDA stackptr
0010A 1D0003 SUB #3
0010D 0F2011 STA stackptr
00110 B400 CLEAR A
00112 032009 LDA oldvalue
00115 4F0000 RSUB
00118 000000 temp WORD 0
0011B FA device BYTE X'FA'
0011C 64 stevke BYTE 100
0011D 64 stevke_r BYTE 100
0011E 000000 oldvalue WORD 0
00121 000000 stackptr WORD 0
00124 00....00 stack RESW 1000

View file

@ -0,0 +1,17 @@
Hprog 000000000CDC
T0000001E4B20D6050001DB211229000A33200D1D00305790011C2D0FFF3F2FEA7500
T00001E1E006D0001AC101D0001AC0153A0F098409005AC4021000AAC04AC101D0001
T00003C1EAC01290000372FE5AC5029000033200D4B2055B4404B2008B4003F2FA73F
T00005A1E2FFD050001AC0425000A21000AAC05AC40945057A0AD2D0FFFAC4025000A
T0000781E290000372FE1AC101D0001AC0153A095190030DD0001AC101D0001AC0129
T0000961E0000372FEA01000ADD00014F0000161001214B20410E1001214B203A2900
T0000B41E0133200C1D00012900013320034B2FE0AC034B20390210012198304B2030
T0000D21E0A1001214F00000F2042B4000120430F203DB4000320354F00000F202FB4
T0000F01E0003202D1900030F2027B40003201F4F00000F2019B4000320171D00030F
T00010E162011B4000320094F0000000000FA6464000000000000
M00001305
M0000A505
M0000AC05
M0000CA05
M0000D305
E000000