working on sicxe
This commit is contained in:
parent
1b990e190c
commit
d836b3955d
79 changed files with 2011 additions and 917 deletions
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue