working on sicxe
This commit is contained in:
parent
1b990e190c
commit
d836b3955d
79 changed files with 2011 additions and 917 deletions
|
|
@ -1,44 +1,44 @@
|
|||
|
||||
|
||||
arith START 0
|
||||
|
||||
start LDA x
|
||||
ADD y
|
||||
STA sum .shrani vsoto
|
||||
|
||||
LDA x
|
||||
SUB y
|
||||
STA diff .shrani razliko
|
||||
|
||||
LDA x
|
||||
MUL y
|
||||
STA prod .sharni produkt
|
||||
|
||||
LDA x
|
||||
DIV y
|
||||
STA quot .shrani kvocient
|
||||
|
||||
LDA y
|
||||
MUL quot
|
||||
STA z
|
||||
LDA x
|
||||
SUB z
|
||||
STA mod .shrani modulo
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.podatki
|
||||
x WORD 20
|
||||
y WORD 3
|
||||
|
||||
.rezultati
|
||||
sum RESW 1
|
||||
diff RESW 1
|
||||
prod RESW 1
|
||||
quot RESW 1
|
||||
mod RESW 1
|
||||
|
||||
.za modulo
|
||||
z RESW 1
|
||||
|
||||
|
||||
|
||||
arith START 0
|
||||
|
||||
start LDA x
|
||||
ADD y
|
||||
STA sum .shrani vsoto
|
||||
|
||||
LDA x
|
||||
SUB y
|
||||
STA diff .shrani razliko
|
||||
|
||||
LDA x
|
||||
MUL y
|
||||
STA prod .sharni produkt
|
||||
|
||||
LDA x
|
||||
DIV y
|
||||
STA quot .shrani kvocient
|
||||
|
||||
LDA y
|
||||
MUL quot
|
||||
STA z
|
||||
LDA x
|
||||
SUB z
|
||||
STA mod .shrani modulo
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.podatki
|
||||
x WORD 20
|
||||
y WORD 3
|
||||
|
||||
.rezultati
|
||||
sum RESW 1
|
||||
diff RESW 1
|
||||
prod RESW 1
|
||||
quot RESW 1
|
||||
mod RESW 1
|
||||
|
||||
.za modulo
|
||||
z RESW 1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,46 +1,46 @@
|
|||
|
||||
|
||||
arith START 0
|
||||
|
||||
start LDT x
|
||||
LDS y
|
||||
ADDR T, S .shrani vsoto
|
||||
STS sum
|
||||
SUBR T, S .resetiraj S nazaj na y
|
||||
|
||||
SUBR S, T
|
||||
STT diff .shrani razliko
|
||||
ADDR S, T .popravi T
|
||||
|
||||
MULR T, S
|
||||
STS prod .sharni produkt
|
||||
|
||||
LDT x
|
||||
LDS y
|
||||
DIVR S, T
|
||||
STT quot .shrani kvocient
|
||||
|
||||
LDT x
|
||||
LDS y
|
||||
LDB quot
|
||||
MULR S, B
|
||||
SUBR B, T
|
||||
STT mod .shrani modulo
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.podatki
|
||||
x WORD 20
|
||||
y WORD 3
|
||||
|
||||
.rezultati
|
||||
sum RESW 1
|
||||
diff RESW 1
|
||||
prod RESW 1
|
||||
quot RESW 1
|
||||
mod RESW 1
|
||||
|
||||
.za modulo
|
||||
z RESW 1
|
||||
|
||||
|
||||
|
||||
arith START 0
|
||||
|
||||
start LDT x
|
||||
LDS y
|
||||
ADDR T, S .shrani vsoto
|
||||
STS sum
|
||||
SUBR T, S .resetiraj S nazaj na y
|
||||
|
||||
SUBR S, T
|
||||
STT diff .shrani razliko
|
||||
ADDR S, T .popravi T
|
||||
|
||||
MULR T, S
|
||||
STS prod .sharni produkt
|
||||
|
||||
LDT x
|
||||
LDS y
|
||||
DIVR S, T
|
||||
STT quot .shrani kvocient
|
||||
|
||||
LDT x
|
||||
LDS y
|
||||
LDB quot
|
||||
MULR S, B
|
||||
SUBR B, T
|
||||
STT mod .shrani modulo
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.podatki
|
||||
x WORD 20
|
||||
y WORD 3
|
||||
|
||||
.rezultati
|
||||
sum RESW 1
|
||||
diff RESW 1
|
||||
prod RESW 1
|
||||
quot RESW 1
|
||||
mod RESW 1
|
||||
|
||||
.za modulo
|
||||
z RESW 1
|
||||
|
||||
|
|
|
|||
12
ass1/cat.asm
12
ass1/cat.asm
|
|
@ -1,7 +1,7 @@
|
|||
cat START 0
|
||||
.beri in pisi
|
||||
loop RD #0
|
||||
WD #1
|
||||
J loop
|
||||
|
||||
cat START 0
|
||||
.beri in pisi
|
||||
loop RD #0
|
||||
WD #1
|
||||
J loop
|
||||
|
||||
END loop
|
||||
272
ass1/echo.asm
272
ass1/echo.asm
|
|
@ -1,137 +1,137 @@
|
|||
echo START 0
|
||||
start .LDCH txt
|
||||
.JSUB char
|
||||
.JSUB nl
|
||||
.LDA #txt
|
||||
.JSUB string
|
||||
.JSUB nl
|
||||
|
||||
LDCH #12
|
||||
JSUB num
|
||||
|
||||
halt J halt
|
||||
|
||||
.char
|
||||
char STB regB
|
||||
STT regT
|
||||
.STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
WD #1
|
||||
.obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
.LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.nl
|
||||
nl STB regB
|
||||
STT regT
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDCH newline
|
||||
WD #1
|
||||
LDX #1
|
||||
LDCH newline, X
|
||||
WD #1
|
||||
|
||||
.obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.string
|
||||
string STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
.STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
loop LDB #1
|
||||
CLEAR A .da lahko comparamo z 0
|
||||
LDCH @regA
|
||||
COMP #0
|
||||
WD #1
|
||||
.add +1 to regA
|
||||
LDA regA
|
||||
ADD #1
|
||||
STA regA
|
||||
JGT loop
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
.LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
.izpiše število zapisano v A na std izhod
|
||||
num STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5
|
||||
LDS #10 .za množenje/deljenje
|
||||
LDT #0x30 .za pretvorbo v ascii
|
||||
|
||||
loop2 RMO A, B
|
||||
DIVR S, B .B = B/10
|
||||
MULR S, B .B= B*10
|
||||
SUBR B, A .A = ostanek
|
||||
ADDR T, A .pretvorimo A v ascii
|
||||
STCH digs, X .shranimo ascii ostanek
|
||||
|
||||
.zmanjšamo X in primerjamo z #5
|
||||
RMO X, A
|
||||
SUB #1
|
||||
RMO A, X
|
||||
LDA #0
|
||||
COMPR X, A
|
||||
|
||||
RMO B, A .premaknemo kar je še potrebno izračunati v A
|
||||
DIVR S, A .A je sedaj naslednja števka
|
||||
|
||||
JEQ loop2
|
||||
JGT loop2
|
||||
|
||||
.kličemo string za izpis
|
||||
LDA #digs
|
||||
JSUB string
|
||||
JSUB nl
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.digits za num
|
||||
digs RESB 5 .0 bo prazna za lazje izpisovanje
|
||||
BYTE 0 .konec števke
|
||||
|
||||
.txt
|
||||
txt BYTE C'hi'
|
||||
BYTE 0
|
||||
|
||||
.constante
|
||||
newline BYTE 0x0D
|
||||
BYTE 0x0A
|
||||
|
||||
.registri
|
||||
regA RESW 1
|
||||
regB RESW 1
|
||||
regT RESW 1
|
||||
regS RESW 1
|
||||
regL RESW 1
|
||||
|
||||
|
||||
echo START 0
|
||||
start .LDCH txt
|
||||
.JSUB char
|
||||
.JSUB nl
|
||||
.LDA #txt
|
||||
.JSUB string
|
||||
.JSUB nl
|
||||
|
||||
LDCH #12
|
||||
JSUB num
|
||||
|
||||
halt J halt
|
||||
|
||||
.char
|
||||
char STB regB
|
||||
STT regT
|
||||
.STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
WD #1
|
||||
.obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
.LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.nl
|
||||
nl STB regB
|
||||
STT regT
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDCH newline
|
||||
WD #1
|
||||
LDX #1
|
||||
LDCH newline, X
|
||||
WD #1
|
||||
|
||||
.obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.string
|
||||
string STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
.STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
loop LDB #1
|
||||
CLEAR A .da lahko comparamo z 0
|
||||
LDCH @regA
|
||||
COMP #0
|
||||
WD #1
|
||||
.add +1 to regA
|
||||
LDA regA
|
||||
ADD #1
|
||||
STA regA
|
||||
JGT loop
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
.LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
.izpiše število zapisano v A na std izhod
|
||||
num STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
STL regL
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5
|
||||
LDS #10 .za množenje/deljenje
|
||||
LDT #0x30 .za pretvorbo v ascii
|
||||
|
||||
loop2 RMO A, B
|
||||
DIVR S, B .B = B/10
|
||||
MULR S, B .B= B*10
|
||||
SUBR B, A .A = ostanek
|
||||
ADDR T, A .pretvorimo A v ascii
|
||||
STCH digs, X .shranimo ascii ostanek
|
||||
|
||||
.zmanjšamo X in primerjamo z #5
|
||||
RMO X, A
|
||||
SUB #1
|
||||
RMO A, X
|
||||
LDA #0
|
||||
COMPR X, A
|
||||
|
||||
RMO B, A .premaknemo kar je še potrebno izračunati v A
|
||||
DIVR S, A .A je sedaj naslednja števka
|
||||
|
||||
JEQ loop2
|
||||
JGT loop2
|
||||
|
||||
.kličemo string za izpis
|
||||
LDA #digs
|
||||
JSUB string
|
||||
JSUB nl
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDL regL
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.digits za num
|
||||
digs RESB 5 .0 bo prazna za lazje izpisovanje
|
||||
BYTE 0 .konec števke
|
||||
|
||||
.txt
|
||||
txt BYTE C'hi'
|
||||
BYTE 0
|
||||
|
||||
.constante
|
||||
newline BYTE 0x0D
|
||||
BYTE 0x0A
|
||||
|
||||
.registri
|
||||
regA RESW 1
|
||||
regB RESW 1
|
||||
regT RESW 1
|
||||
regS RESW 1
|
||||
regL RESW 1
|
||||
|
||||
|
||||
END start
|
||||
134
ass1/fac.asm
134
ass1/fac.asm
|
|
@ -1,68 +1,68 @@
|
|||
prog START 0
|
||||
zacetek CLEAR X
|
||||
loop RD #0xFA
|
||||
COMP #0
|
||||
JEQ halt
|
||||
JSUB fact
|
||||
WD #1
|
||||
J loop
|
||||
|
||||
halt J halt
|
||||
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
prog START 0
|
||||
zacetek CLEAR X
|
||||
loop RD #0xFA
|
||||
COMP #0
|
||||
JEQ halt
|
||||
JSUB fact
|
||||
WD #1
|
||||
J loop
|
||||
|
||||
halt J halt
|
||||
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
END prog
|
||||
130
ass1/fact.asm
130
ass1/fact.asm
|
|
@ -1,66 +1,66 @@
|
|||
prog START 0
|
||||
JSUB sinit
|
||||
LDA #5
|
||||
JSUB fact
|
||||
|
||||
|
||||
|
||||
halt J halt
|
||||
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
prog START 0
|
||||
JSUB sinit
|
||||
LDA #5
|
||||
JSUB fact
|
||||
|
||||
|
||||
|
||||
halt J halt
|
||||
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
END prog
|
||||
|
|
@ -1,38 +1,38 @@
|
|||
poly START 0
|
||||
start LDT x4
|
||||
LDS x
|
||||
MULR S, T
|
||||
LDA x3
|
||||
ADDR T, A . do sedaj izračunano (1x + 2)
|
||||
|
||||
LDT x2
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano ((1x+2)x + 3)
|
||||
|
||||
LDT x1
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano (((1x+2)x + 3)x + 4)
|
||||
|
||||
LDT x0
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano (((1x+2)x + 3)x + 4)x + 5
|
||||
|
||||
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
|
||||
.polinom
|
||||
x4 WORD 1
|
||||
x3 WORD 2
|
||||
x2 WORD 3
|
||||
x1 WORD 4
|
||||
x0 WORD 5
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
poly START 0
|
||||
start LDT x4
|
||||
LDS x
|
||||
MULR S, T
|
||||
LDA x3
|
||||
ADDR T, A . do sedaj izračunano (1x + 2)
|
||||
|
||||
LDT x2
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano ((1x+2)x + 3)
|
||||
|
||||
LDT x1
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano (((1x+2)x + 3)x + 4)
|
||||
|
||||
LDT x0
|
||||
MULR S, A
|
||||
ADDR T, A .do sedaj izračunano (((1x+2)x + 3)x + 4)x + 5
|
||||
|
||||
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
|
||||
.polinom
|
||||
x4 WORD 1
|
||||
x3 WORD 2
|
||||
x2 WORD 3
|
||||
x1 WORD 4
|
||||
x0 WORD 5
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
rez RESW 1
|
||||
|
|
@ -1,66 +1,66 @@
|
|||
.program prebere iz spomina seznam števil dolžine len
|
||||
.in jih uredi z insertion sortom
|
||||
.pustimo prvi element paddan, da lažje rečunamo premike
|
||||
prog START 0
|
||||
LDX #6
|
||||
|
||||
loop LDB #len
|
||||
COMPR X, B .i < len
|
||||
JEQ halt .zaključi
|
||||
|
||||
LDA arr, X .A = arr[i]
|
||||
RMO X, S .S <- i
|
||||
LDT #3 .T <- 3
|
||||
SUBR T, X .X <- j= i - 1
|
||||
|
||||
loop2 LDT #3
|
||||
COMPR X, T .j >= 1
|
||||
JLT insert .ko je j = 0 skoči
|
||||
J next .skoči na preverjanje naslednjega pogoja
|
||||
|
||||
.shranimo S nazaj v X in ga zmanjšamo za ena
|
||||
.nato skočimo nazaj v loop
|
||||
exit2 RMO S, X .X <- i
|
||||
LDT #3
|
||||
ADDR T, X .X <- i + 1
|
||||
J loop
|
||||
|
||||
next LDB arr, X
|
||||
COMPR B, A .arr[j] > arr[i]
|
||||
JGT swap
|
||||
J insert .če pogoj ni izpolnjen
|
||||
|
||||
.sicer zamenjamo elementa
|
||||
swap LDT #3
|
||||
ADDR T, X .X <- j + 1
|
||||
STB arr, X. arr[j+1] = arr[j]
|
||||
|
||||
LDT #6
|
||||
SUBR T, X .x <- x-1
|
||||
J loop2
|
||||
|
||||
insert LDT #3
|
||||
ADDR T, X .j = j+1
|
||||
STA arr, X .arr[j+1] = arr[i]
|
||||
SUBR T, X .j = j
|
||||
J exit2
|
||||
|
||||
halt J halt
|
||||
|
||||
arr WORD 0
|
||||
WORD 5
|
||||
WORD 3
|
||||
WORD 8
|
||||
WORD 1
|
||||
WORD 4
|
||||
WORD 7
|
||||
WORD 2
|
||||
WORD 9
|
||||
arrEnd WORD 6
|
||||
|
||||
len EQU arrEnd - arr + 3
|
||||
|
||||
|
||||
|
||||
|
||||
.program prebere iz spomina seznam števil dolžine len
|
||||
.in jih uredi z insertion sortom
|
||||
.pustimo prvi element paddan, da lažje rečunamo premike
|
||||
prog START 0
|
||||
LDX #6
|
||||
|
||||
loop LDB #len
|
||||
COMPR X, B .i < len
|
||||
JEQ halt .zaključi
|
||||
|
||||
LDA arr, X .A = arr[i]
|
||||
RMO X, S .S <- i
|
||||
LDT #3 .T <- 3
|
||||
SUBR T, X .X <- j= i - 1
|
||||
|
||||
loop2 LDT #3
|
||||
COMPR X, T .j >= 1
|
||||
JLT insert .ko je j = 0 skoči
|
||||
J next .skoči na preverjanje naslednjega pogoja
|
||||
|
||||
.shranimo S nazaj v X in ga zmanjšamo za ena
|
||||
.nato skočimo nazaj v loop
|
||||
exit2 RMO S, X .X <- i
|
||||
LDT #3
|
||||
ADDR T, X .X <- i + 1
|
||||
J loop
|
||||
|
||||
next LDB arr, X
|
||||
COMPR B, A .arr[j] > arr[i]
|
||||
JGT swap
|
||||
J insert .če pogoj ni izpolnjen
|
||||
|
||||
.sicer zamenjamo elementa
|
||||
swap LDT #3
|
||||
ADDR T, X .X <- j + 1
|
||||
STB arr, X. arr[j+1] = arr[j]
|
||||
|
||||
LDT #6
|
||||
SUBR T, X .x <- x-1
|
||||
J loop2
|
||||
|
||||
insert LDT #3
|
||||
ADDR T, X .j = j+1
|
||||
STA arr, X .arr[j+1] = arr[i]
|
||||
SUBR T, X .j = j
|
||||
J exit2
|
||||
|
||||
halt J halt
|
||||
|
||||
arr WORD 0
|
||||
WORD 5
|
||||
WORD 3
|
||||
WORD 8
|
||||
WORD 1
|
||||
WORD 4
|
||||
WORD 7
|
||||
WORD 2
|
||||
WORD 9
|
||||
arrEnd WORD 6
|
||||
|
||||
len EQU arrEnd - arr + 3
|
||||
|
||||
|
||||
|
||||
|
||||
END prog
|
||||
|
|
@ -1,42 +1,42 @@
|
|||
poly START 0
|
||||
start LDA x0 .pristejemo x0 v A
|
||||
|
||||
LDB x
|
||||
LDS x
|
||||
LDT x1
|
||||
MULR S, T
|
||||
ADDR T, A .pristejemo x0 * x
|
||||
|
||||
LDT x2
|
||||
MULR B, S .izracunamo x^2
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
LDT x3
|
||||
MULR B, S .izracunamo x^3
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
LDT x4
|
||||
MULR B, S .izracunamo x^4
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
|
||||
.polinom
|
||||
x4 WORD 1
|
||||
x3 WORD 2
|
||||
x2 WORD 3
|
||||
x1 WORD 4
|
||||
x0 WORD 5
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
poly START 0
|
||||
start LDA x0 .pristejemo x0 v A
|
||||
|
||||
LDB x
|
||||
LDS x
|
||||
LDT x1
|
||||
MULR S, T
|
||||
ADDR T, A .pristejemo x0 * x
|
||||
|
||||
LDT x2
|
||||
MULR B, S .izracunamo x^2
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
LDT x3
|
||||
MULR B, S .izracunamo x^3
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
LDT x4
|
||||
MULR B, S .izracunamo x^4
|
||||
MULR S, T
|
||||
ADDR T, A
|
||||
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
|
||||
.polinom
|
||||
x4 WORD 1
|
||||
x3 WORD 2
|
||||
x2 WORD 3
|
||||
x1 WORD 4
|
||||
x0 WORD 5
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
rez RESW 1
|
||||
|
|
@ -1,64 +1,64 @@
|
|||
poly START 0
|
||||
start LDA x
|
||||
STA arg1
|
||||
JSUB startSubrutine
|
||||
LDA subRez
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.subrutina za izračun tega polinoma v točki arg1
|
||||
startSubrutine STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDA x0 .pristejemo x0 v A
|
||||
|
||||
LDX #3 .odmik v arrayu
|
||||
LDS arg1
|
||||
loop LDT x0, X .preberemo x_n
|
||||
MULR S, T .izračunamo x_n * x^n
|
||||
ADDR T, A .pristejemo v vsoto
|
||||
LDT arg1
|
||||
MULR T, S .zmožimo naslednjo potenco
|
||||
LDT #3
|
||||
ADDR T, X .povečamo odmik
|
||||
LDT #13
|
||||
COMPR T, X
|
||||
JGT loop
|
||||
|
||||
STA subRez .shranimo rez
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.polinom
|
||||
x0 WORD 5
|
||||
WORD 4
|
||||
WORD 3
|
||||
WORD 2
|
||||
WORD 1
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
rez RESW 1
|
||||
|
||||
.parameter subrutine
|
||||
arg1 RESW 1
|
||||
|
||||
.rezultat subrutine
|
||||
subRez RESW 1
|
||||
|
||||
.registri
|
||||
regA RESW 1
|
||||
regB RESW 1
|
||||
regT RESW 1
|
||||
regS RESW 1
|
||||
poly START 0
|
||||
start LDA x
|
||||
STA arg1
|
||||
JSUB startSubrutine
|
||||
LDA subRez
|
||||
STA rez
|
||||
|
||||
halt J halt
|
||||
END start
|
||||
|
||||
.subrutina za izračun tega polinoma v točki arg1
|
||||
startSubrutine STA regA
|
||||
STB regB
|
||||
STT regT
|
||||
STS regS .shranimo registre
|
||||
|
||||
LDA x0 .pristejemo x0 v A
|
||||
|
||||
LDX #3 .odmik v arrayu
|
||||
LDS arg1
|
||||
loop LDT x0, X .preberemo x_n
|
||||
MULR S, T .izračunamo x_n * x^n
|
||||
ADDR T, A .pristejemo v vsoto
|
||||
LDT arg1
|
||||
MULR T, S .zmožimo naslednjo potenco
|
||||
LDT #3
|
||||
ADDR T, X .povečamo odmik
|
||||
LDT #13
|
||||
COMPR T, X
|
||||
JGT loop
|
||||
|
||||
STA subRez .shranimo rez
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
LDB regB
|
||||
LDT regT
|
||||
LDS regS
|
||||
|
||||
RSUB
|
||||
|
||||
.polinom
|
||||
x0 WORD 5
|
||||
WORD 4
|
||||
WORD 3
|
||||
WORD 2
|
||||
WORD 1
|
||||
|
||||
.tocka
|
||||
x WORD 2
|
||||
|
||||
.rezultat
|
||||
rez RESW 1
|
||||
|
||||
.parameter subrutine
|
||||
arg1 RESW 1
|
||||
|
||||
.rezultat subrutine
|
||||
subRez RESW 1
|
||||
|
||||
.registri
|
||||
regA RESW 1
|
||||
regB RESW 1
|
||||
regT RESW 1
|
||||
regS RESW 1
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
print START 0
|
||||
zacetek CLEAR X
|
||||
loop LDCH txt, X
|
||||
WD #0xAA
|
||||
TIX #len .#len, ker je len EQU in ne dejanska lokacija v spominu!!!!!
|
||||
JLT loop
|
||||
|
||||
halt J halt
|
||||
|
||||
.constants
|
||||
txt BYTE C'SIC/XE'
|
||||
BYTE 0
|
||||
txtend EQU *
|
||||
len EQU txtend-txt .definicija konstante EQU, ki ni shranjena v pomnilniku, zato ko jo želimo uporabiti
|
||||
.rabimo #len
|
||||
|
||||
print START 0
|
||||
zacetek CLEAR X
|
||||
loop LDCH txt, X
|
||||
WD #0xAA
|
||||
TIX #len .#len, ker je len EQU in ne dejanska lokacija v spominu!!!!!
|
||||
JLT loop
|
||||
|
||||
halt J halt
|
||||
|
||||
.constants
|
||||
txt BYTE C'SIC/XE'
|
||||
BYTE 0
|
||||
txtend EQU *
|
||||
len EQU txtend-txt .definicija konstante EQU, ki ni shranjena v pomnilniku, zato ko jo želimo uporabiti
|
||||
.rabimo #len
|
||||
|
||||
END zacetek
|
||||
464
ass1/rec.asm
464
ass1/rec.asm
|
|
@ -1,233 +1,233 @@
|
|||
prog START 0
|
||||
zacetek JSUB sinit .inicializiramo sklad
|
||||
.beremo iz 0xFA, dokler ne preberemo 0
|
||||
loop3 CLEAR A
|
||||
JSUB rdNum
|
||||
COMP #0
|
||||
JEQ halt
|
||||
|
||||
|
||||
JSUB fact
|
||||
JSUB num
|
||||
J loop3
|
||||
|
||||
halt J halt
|
||||
|
||||
.beri število v A dokler ne naletiš na newline in jo pretvori v int
|
||||
rdNum STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
CLEAR A
|
||||
CLEAR B .v B bomo shranili prebran rezultat
|
||||
LDS #10 .za množenje
|
||||
loop4 RD #0xFA
|
||||
COMP #0xD .beremo newline
|
||||
JEQ nwl
|
||||
.else
|
||||
MULR S, B
|
||||
SUB #0x30 .pretvorimo v int
|
||||
ADDR A, B
|
||||
J loop4
|
||||
|
||||
nwl RD #0xFA .prebre še 0x0A
|
||||
CLEAR A
|
||||
RMO B, A
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
.inicializira kazalec na sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.pusha na sklad, pred klicem te subrutine shrani na sklad kar želiš
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.popa iz sklada, po koncu te subrutine iz sklada beri kar želš
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
|
||||
.nl
|
||||
nl STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
|
||||
|
||||
LDCH newline
|
||||
WD #1
|
||||
LDX #1
|
||||
LDCH newline, X
|
||||
WD #1
|
||||
|
||||
.obnovimo registre
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
|
||||
.string
|
||||
string STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
STA regA
|
||||
|
||||
loop LDB #1
|
||||
CLEAR A .da lahko comparamo z 0
|
||||
LDCH @regA
|
||||
COMP #0
|
||||
WD #1
|
||||
.add +1 to regA
|
||||
LDA regA
|
||||
ADD #1
|
||||
STA regA
|
||||
JGT loop
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
.izpiše število zapisano v A na std izhod
|
||||
num STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
|
||||
LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5
|
||||
LDS #10 .za množenje/deljenje
|
||||
LDT #0x30 .za pretvorbo v ascii
|
||||
|
||||
|
||||
loop2 RMO A, B
|
||||
DIVR S, B .B = B/10
|
||||
MULR S, B .B= B*10
|
||||
SUBR B, A .A = ostanek
|
||||
ADDR T, A .pretvorimo A v ascii
|
||||
STCH digs, X .shranimo ascii ostanek
|
||||
|
||||
.zmanjšamo X in primerjamo z #5
|
||||
RMO X, A
|
||||
SUB #1
|
||||
RMO A, X
|
||||
LDA #0
|
||||
COMPR X, A
|
||||
|
||||
RMO B, A .premaknemo kar je še potrebno izračunati v A
|
||||
DIVR S, A .A je sedaj naslednja števka
|
||||
|
||||
JEQ loop2
|
||||
JGT loop2
|
||||
|
||||
.kličemo string za izpis
|
||||
LDA #digs
|
||||
JSUB string
|
||||
JSUB nl
|
||||
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.digits za num
|
||||
digs RESB 5 .0 bo prazna za lazje izpisovanje
|
||||
BYTE 0 .konec števke
|
||||
|
||||
.constante
|
||||
newline BYTE 0x0D
|
||||
BYTE 0x0A
|
||||
|
||||
.shramba za string
|
||||
regA WORD 0
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
prog START 0
|
||||
zacetek JSUB sinit .inicializiramo sklad
|
||||
.beremo iz 0xFA, dokler ne preberemo 0
|
||||
loop3 CLEAR A
|
||||
JSUB rdNum
|
||||
COMP #0
|
||||
JEQ halt
|
||||
|
||||
|
||||
JSUB fact
|
||||
JSUB num
|
||||
J loop3
|
||||
|
||||
halt J halt
|
||||
|
||||
.beri število v A dokler ne naletiš na newline in jo pretvori v int
|
||||
rdNum STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
CLEAR A
|
||||
CLEAR B .v B bomo shranili prebran rezultat
|
||||
LDS #10 .za množenje
|
||||
loop4 RD #0xFA
|
||||
COMP #0xD .beremo newline
|
||||
JEQ nwl
|
||||
.else
|
||||
MULR S, B
|
||||
SUB #0x30 .pretvorimo v int
|
||||
ADDR A, B
|
||||
J loop4
|
||||
|
||||
nwl RD #0xFA .prebre še 0x0A
|
||||
CLEAR A
|
||||
RMO B, A
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
.fakulteta
|
||||
fact COMP #1
|
||||
JGT rec
|
||||
LDA #1 .base case
|
||||
RSUB
|
||||
|
||||
rec STL @stkp
|
||||
JSUB spush
|
||||
STA @stkp
|
||||
JSUB spush
|
||||
STB @stkp
|
||||
JSUB spush
|
||||
|
||||
RMO A, B .shrani n v B
|
||||
SUB #1 .n-1
|
||||
JSUB fact .fact(n-1)
|
||||
MULR B, A .n * fact(n-1)
|
||||
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
.LDA @stkp da ne povozimo odgovora?
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.rutine za sklad
|
||||
.inicializira kazalec na sklad
|
||||
sinit STA stkA
|
||||
LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.pusha na sklad, pred klicem te subrutine shrani na sklad kar želiš
|
||||
spush STA stkA
|
||||
LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
.popa iz sklada, po koncu te subrutine iz sklada beri kar želš
|
||||
spop STA stkA
|
||||
LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
LDA stkA
|
||||
RSUB
|
||||
|
||||
|
||||
.nl
|
||||
nl STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
|
||||
|
||||
LDCH newline
|
||||
WD #1
|
||||
LDX #1
|
||||
LDCH newline, X
|
||||
WD #1
|
||||
|
||||
.obnovimo registre
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
|
||||
.string
|
||||
string STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
STA regA
|
||||
|
||||
loop LDB #1
|
||||
CLEAR A .da lahko comparamo z 0
|
||||
LDCH @regA
|
||||
COMP #0
|
||||
WD #1
|
||||
.add +1 to regA
|
||||
LDA regA
|
||||
ADD #1
|
||||
STA regA
|
||||
JGT loop
|
||||
|
||||
LDA regA .obnovimo registre
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
.izpiše število zapisano v A na std izhod
|
||||
num STL @stkp
|
||||
JSUB spush
|
||||
STB @stkp .shranimo registre
|
||||
JSUB spush
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
STS @stkp
|
||||
JSUB spush
|
||||
|
||||
LDX #4 .X steje stevke, 4 je zadnji index arraya velikosti 5
|
||||
LDS #10 .za množenje/deljenje
|
||||
LDT #0x30 .za pretvorbo v ascii
|
||||
|
||||
|
||||
loop2 RMO A, B
|
||||
DIVR S, B .B = B/10
|
||||
MULR S, B .B= B*10
|
||||
SUBR B, A .A = ostanek
|
||||
ADDR T, A .pretvorimo A v ascii
|
||||
STCH digs, X .shranimo ascii ostanek
|
||||
|
||||
.zmanjšamo X in primerjamo z #5
|
||||
RMO X, A
|
||||
SUB #1
|
||||
RMO A, X
|
||||
LDA #0
|
||||
COMPR X, A
|
||||
|
||||
RMO B, A .premaknemo kar je še potrebno izračunati v A
|
||||
DIVR S, A .A je sedaj naslednja števka
|
||||
|
||||
JEQ loop2
|
||||
JGT loop2
|
||||
|
||||
.kličemo string za izpis
|
||||
LDA #digs
|
||||
JSUB string
|
||||
JSUB nl
|
||||
|
||||
JSUB spop
|
||||
LDS @stkp
|
||||
JSUB spop
|
||||
LDT @stkp
|
||||
JSUB spop
|
||||
LDB @stkp
|
||||
JSUB spop
|
||||
LDL @stkp
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
.digits za num
|
||||
digs RESB 5 .0 bo prazna za lazje izpisovanje
|
||||
BYTE 0 .konec števke
|
||||
|
||||
.constante
|
||||
newline BYTE 0x0D
|
||||
BYTE 0x0A
|
||||
|
||||
.shramba za string
|
||||
regA WORD 0
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkA WORD 0
|
||||
stkRESW RESW 1000
|
||||
|
||||
END prog
|
||||
|
|
@ -1,38 +1,38 @@
|
|||
scr START 0
|
||||
LDCH txt
|
||||
+STCH screen
|
||||
LDX #3
|
||||
+STCH screen, X
|
||||
|
||||
JSUB scrcfill
|
||||
|
||||
JSUB scrclear
|
||||
|
||||
halt J halt
|
||||
|
||||
scrclear LDCH #0
|
||||
LDS #scrlen
|
||||
LDX #0
|
||||
loop +STCH screen, X
|
||||
TIXR S
|
||||
JLT loop
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
scrcfill
|
||||
LDS #scrlen
|
||||
LDX #0
|
||||
loop2 +STCH screen, X
|
||||
TIXR S
|
||||
JLT loop2
|
||||
|
||||
RSUB
|
||||
|
||||
txt BYTE C'hi'
|
||||
screen EQU 0x0B800
|
||||
scrcols EQU 80
|
||||
scrrows EQU 25
|
||||
scrlen EQU 2000
|
||||
|
||||
scr START 0
|
||||
LDCH txt
|
||||
+STCH screen
|
||||
LDX #3
|
||||
+STCH screen, X
|
||||
|
||||
JSUB scrcfill
|
||||
|
||||
JSUB scrclear
|
||||
|
||||
halt J halt
|
||||
|
||||
scrclear LDCH #0
|
||||
LDS #scrlen
|
||||
LDX #0
|
||||
loop +STCH screen, X
|
||||
TIXR S
|
||||
JLT loop
|
||||
|
||||
RSUB
|
||||
|
||||
|
||||
scrcfill
|
||||
LDS #scrlen
|
||||
LDX #0
|
||||
loop2 +STCH screen, X
|
||||
TIXR S
|
||||
JLT loop2
|
||||
|
||||
RSUB
|
||||
|
||||
txt BYTE C'hi'
|
||||
screen EQU 0x0B800
|
||||
scrcols EQU 80
|
||||
scrrows EQU 25
|
||||
scrlen EQU 2000
|
||||
|
||||
END scr
|
||||
|
|
@ -1,33 +1,33 @@
|
|||
prog START 0
|
||||
JSUB sinit
|
||||
LDT #4
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
JSUB spop
|
||||
CLEAR T
|
||||
LDT @stkp
|
||||
|
||||
halt J halt
|
||||
|
||||
.rutine za sklad
|
||||
sinit LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
spush LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
spop LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkRESW WORD 1000
|
||||
|
||||
END prog
|
||||
|
||||
|
||||
prog START 0
|
||||
JSUB sinit
|
||||
LDT #4
|
||||
STT @stkp
|
||||
JSUB spush
|
||||
JSUB spop
|
||||
CLEAR T
|
||||
LDT @stkp
|
||||
|
||||
halt J halt
|
||||
|
||||
.rutine za sklad
|
||||
sinit LDA #stkRESW .inicializiraj stkp
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
spush LDA stkp .poveca stkp za 3
|
||||
ADD #3
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
spop LDA stkp .zmanjsa stkp za 3
|
||||
SUB #3
|
||||
STA stkp
|
||||
RSUB
|
||||
|
||||
.podatki za sklad
|
||||
stkp WORD 0
|
||||
stkRESW WORD 1000
|
||||
|
||||
END prog
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue