final hw push
This commit is contained in:
parent
371cfddbde
commit
27b8de1bc2
36 changed files with 1018 additions and 6 deletions
5
ass1/vaje/sklad/FA.dev
Normal file
5
ass1/vaje/sklad/FA.dev
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
1
|
||||
9
|
||||
5
|
||||
10
|
||||
0
|
||||
133
ass1/vaje/sklad/rekurzija.asm
Normal file
133
ass1/vaje/sklad/rekurzija.asm
Normal file
|
|
@ -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
|
||||
53
ass1/vaje/sklad/stack.asm
Normal file
53
ass1/vaje/sklad/stack.asm
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
prog START 0
|
||||
+JSUB stackinit
|
||||
|
||||
LDA #5
|
||||
+STA @stackptr
|
||||
JSUB stackpush
|
||||
|
||||
LDA #6
|
||||
+STA @stackptr
|
||||
JSUB stackpush
|
||||
|
||||
JSUB stackpop
|
||||
+LDA @stackptr
|
||||
|
||||
JSUB stackpop
|
||||
+LDA @stackptr
|
||||
|
||||
HALT J HALT
|
||||
END prog
|
||||
|
||||
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
|
||||
RSUB
|
||||
|
||||
exit JSUB stackpop
|
||||
+LDB @stackptr
|
||||
JSUB stackpop
|
||||
+LDL @stackptr
|
||||
RSUB
|
||||
|
||||
oldvalue WORD 0
|
||||
stackptr WORD 0
|
||||
stack RESW 1000
|
||||
17
ass1/vaje/sklad/stack.log
Normal file
17
ass1/vaje/sklad/stack.log
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
***** Section <default> *****
|
||||
Stats: size=3031 blocks=3031 symbols=6 literals=0 relocations=0
|
||||
Blocks
|
||||
name start size #ins #dir #sto
|
||||
<default> 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
|
||||
33
ass1/vaje/sklad/stack.lst
Normal file
33
ass1/vaje/sklad/stack.lst
Normal file
|
|
@ -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
|
||||
4
ass1/vaje/sklad/stack.obj
Normal file
4
ass1/vaje/sklad/stack.obj
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Hprog 000000000BD7
|
||||
T0000001E4B20033F2FFD0F2010B4000120110F200BB4000320034F00000000000000
|
||||
T00001E0100
|
||||
E000000
|
||||
16
ass1/vaje/sklad/test.asm
Normal file
16
ass1/vaje/sklad/test.asm
Normal file
|
|
@ -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'
|
||||
Loading…
Add table
Add a link
Reference in a new issue