Compare commits
No commits in common. "fc0c6809303bc94b103c1b9db7368545ec158a1b" and "483a16c194bfede122060cbe25f57385528284ae" have entirely different histories.
fc0c680930
...
483a16c194
8 changed files with 0 additions and 470 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -19,7 +19,5 @@ node_modules/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
||||||
|
|
||||||
*.dev
|
|
||||||
autotester
|
autotester
|
||||||
sictools.jar
|
sictools.jar
|
||||||
|
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
arith START 0
|
|
||||||
|
|
||||||
. seštevek: sum = x + y
|
|
||||||
LDA x
|
|
||||||
ADD y
|
|
||||||
STA sum
|
|
||||||
|
|
||||||
. razlika: diff = x - y
|
|
||||||
LDA x
|
|
||||||
SUB y
|
|
||||||
STA diff
|
|
||||||
|
|
||||||
. produkt: prod = x * y
|
|
||||||
LDA x
|
|
||||||
MUL y
|
|
||||||
STA prod
|
|
||||||
|
|
||||||
. količnik: quot = x / y
|
|
||||||
LDA x
|
|
||||||
DIV y .
|
|
||||||
STA quot
|
|
||||||
|
|
||||||
. ostanek: mod = x - y * (x / y)
|
|
||||||
STA qtemp
|
|
||||||
|
|
||||||
LDA y
|
|
||||||
MUL qtemp
|
|
||||||
STA prodtmp
|
|
||||||
|
|
||||||
LDA x
|
|
||||||
SUB prodtmp
|
|
||||||
STA mod
|
|
||||||
|
|
||||||
HALT J HALT
|
|
||||||
|
|
||||||
.data
|
|
||||||
x WORD 5
|
|
||||||
y WORD 2
|
|
||||||
|
|
||||||
sum RESW 1
|
|
||||||
diff RESW 1
|
|
||||||
prod RESW 1
|
|
||||||
quot RESW 1
|
|
||||||
mod RESW 1
|
|
||||||
|
|
||||||
qtemp RESW 1
|
|
||||||
prodtmp RESW 1
|
|
||||||
|
|
||||||
END arith
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
.code
|
|
||||||
arithr START 0
|
|
||||||
|
|
||||||
LDA x ; A = x
|
|
||||||
LDB y ; B = y
|
|
||||||
|
|
||||||
RMO A,S ; S = x
|
|
||||||
RMO B,T ; T = y
|
|
||||||
|
|
||||||
. sum = x + y
|
|
||||||
RMO S,A ; A = x
|
|
||||||
ADDR T,A ; A = x + y
|
|
||||||
STA sum
|
|
||||||
|
|
||||||
. diff = x - y
|
|
||||||
RMO S,A ; A = x
|
|
||||||
SUBR T,A ; A = x - y
|
|
||||||
STA diff
|
|
||||||
|
|
||||||
. prod = x * y
|
|
||||||
RMO S,A ; A = x
|
|
||||||
RMO T,B ; B = y
|
|
||||||
MULR B,A ; A = x * y
|
|
||||||
STA prod
|
|
||||||
|
|
||||||
. quot = x / y
|
|
||||||
RMO S,A ; A = x
|
|
||||||
RMO T,B ; B = y
|
|
||||||
DIVR B,A ; A = x / y
|
|
||||||
STA quot
|
|
||||||
|
|
||||||
|
|
||||||
. mod = x % y = x - (x / y)*y
|
|
||||||
RMO S,A
|
|
||||||
RMO T,B
|
|
||||||
DIVR B,A ; A = q = x/y
|
|
||||||
RMO A,L ; L = q (shrani)
|
|
||||||
|
|
||||||
RMO T,A ; A = y
|
|
||||||
RMO L,B ; B = q
|
|
||||||
MULR B,A ; A = y*q = produkt
|
|
||||||
|
|
||||||
RMO S,B ; B = x
|
|
||||||
SUBR A,B ; B = x - (y*q)
|
|
||||||
STB mod
|
|
||||||
|
|
||||||
HALT J HALT
|
|
||||||
|
|
||||||
.data
|
|
||||||
x WORD 5
|
|
||||||
y WORD 2
|
|
||||||
|
|
||||||
sum RESW 1
|
|
||||||
diff RESW 1
|
|
||||||
prod RESW 1
|
|
||||||
quot RESW 1
|
|
||||||
mod RESW 1
|
|
||||||
|
|
||||||
END arithr
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
poly START 0
|
|
||||||
|
|
||||||
. potence x^1 .. x^4
|
|
||||||
LDA x
|
|
||||||
STA x1
|
|
||||||
|
|
||||||
MUL x
|
|
||||||
STA x2
|
|
||||||
|
|
||||||
MUL x
|
|
||||||
STA x3
|
|
||||||
|
|
||||||
MUL x
|
|
||||||
STA x4
|
|
||||||
|
|
||||||
|
|
||||||
. x3 = 2 * x^3
|
|
||||||
LDA x3
|
|
||||||
LDB #2
|
|
||||||
MULR A,B
|
|
||||||
STB x3
|
|
||||||
|
|
||||||
. x2 = 3 * x^2
|
|
||||||
LDA x2
|
|
||||||
LDB #3
|
|
||||||
MULR A,B
|
|
||||||
STB x2
|
|
||||||
|
|
||||||
. x1 = 4 * x
|
|
||||||
LDA x1
|
|
||||||
LDB #4
|
|
||||||
MULR A,B
|
|
||||||
STB x1
|
|
||||||
|
|
||||||
. vsota vseh
|
|
||||||
LDA x0
|
|
||||||
ADD x1
|
|
||||||
ADD x2
|
|
||||||
ADD x3
|
|
||||||
ADD x4
|
|
||||||
STA result
|
|
||||||
|
|
||||||
|
|
||||||
HALT J HALT
|
|
||||||
END poly
|
|
||||||
.data
|
|
||||||
x WORD 2 ; vrednost x
|
|
||||||
|
|
||||||
x4 RESW 1
|
|
||||||
x3 RESW 1
|
|
||||||
x2 RESW 1
|
|
||||||
x1 RESW 1
|
|
||||||
x0 WORD 5 ; konstanta
|
|
||||||
|
|
||||||
result RESW 1
|
|
||||||
|
|
||||||
END poly
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
.code
|
|
||||||
prog START 0
|
|
||||||
|
|
||||||
LDX #0
|
|
||||||
|
|
||||||
loop LDCH msg,X
|
|
||||||
WD #0xAA
|
|
||||||
|
|
||||||
TIX msglen
|
|
||||||
JLT loop
|
|
||||||
|
|
||||||
LDA #0x0D
|
|
||||||
WD #0xAA
|
|
||||||
LDA #0x0A
|
|
||||||
WD #0xAA
|
|
||||||
|
|
||||||
halt J halt
|
|
||||||
|
|
||||||
.data
|
|
||||||
msg BYTE C'SIC/XE'
|
|
||||||
msglen WORD 6
|
|
||||||
|
|
||||||
END prog
|
|
||||||
223
ass1/rec.asm
223
ass1/rec.asm
|
|
@ -1,223 +0,0 @@
|
||||||
prog START 0
|
|
||||||
|
|
||||||
.-------------------------------------------
|
|
||||||
. MAIN LOOP
|
|
||||||
.
|
|
||||||
. Psevdo:
|
|
||||||
. sp = 0
|
|
||||||
. while true:
|
|
||||||
. n = readFA()
|
|
||||||
. if n == 0: halt
|
|
||||||
. acc = 1
|
|
||||||
. fact() ; rekurzivno: acc = n!
|
|
||||||
. printStdout(acc)
|
|
||||||
.-------------------------------------------
|
|
||||||
CLEAR A
|
|
||||||
STA sp
|
|
||||||
|
|
||||||
loop JSUB readFA
|
|
||||||
COMP #0
|
|
||||||
JEQ halt
|
|
||||||
|
|
||||||
STA n
|
|
||||||
LDA #1
|
|
||||||
STA acc
|
|
||||||
|
|
||||||
JSUB fact
|
|
||||||
LDA acc
|
|
||||||
JSUB printStdout
|
|
||||||
|
|
||||||
J loop
|
|
||||||
|
|
||||||
halt J halt
|
|
||||||
|
|
||||||
.-------------------------------------------
|
|
||||||
. readFA
|
|
||||||
.
|
|
||||||
. Psevdo:
|
|
||||||
. B = 0
|
|
||||||
. while true:
|
|
||||||
. ch = RD(FA)
|
|
||||||
. if ch == CR or ch == LF: break
|
|
||||||
. digit = ch - '0'
|
|
||||||
. B = B * 10 + digit
|
|
||||||
. return B
|
|
||||||
.-------------------------------------------
|
|
||||||
readFA CLEAR B
|
|
||||||
LDS #10
|
|
||||||
|
|
||||||
rd_loopFA RD #0xFA
|
|
||||||
COMP #0x0D . CR?
|
|
||||||
JEQ rd_doneCR_FA
|
|
||||||
COMP #0x0A . LF?
|
|
||||||
JEQ rd_doneFA
|
|
||||||
|
|
||||||
SUB #0x30
|
|
||||||
MULR S,B . B = B * 10
|
|
||||||
ADDR A,B . B = B + digit
|
|
||||||
J rd_loopFA
|
|
||||||
|
|
||||||
rd_doneCR_FA RD #0xFA . pogoltni LF po CR
|
|
||||||
rd_doneFA CLEAR A
|
|
||||||
RMO B,A
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
.-------------------------------------------
|
|
||||||
. fact
|
|
||||||
.
|
|
||||||
. Psevdo (globalni n, acc, sklad L):
|
|
||||||
. fact():
|
|
||||||
. push(L)
|
|
||||||
. if n <= 1:
|
|
||||||
. pop(L); return
|
|
||||||
. acc = acc * n
|
|
||||||
. n = n - 1
|
|
||||||
. fact()
|
|
||||||
. pop(L); return
|
|
||||||
.-------------------------------------------
|
|
||||||
fact . push L
|
|
||||||
LDA sp
|
|
||||||
ADD #3
|
|
||||||
STA sp
|
|
||||||
LDX sp
|
|
||||||
STL stackL,X
|
|
||||||
|
|
||||||
LDA n
|
|
||||||
COMP #1
|
|
||||||
JGT fact_rec
|
|
||||||
|
|
||||||
. base case: n <= 1
|
|
||||||
LDX sp
|
|
||||||
LDL stackL,X
|
|
||||||
LDA sp
|
|
||||||
SUB #3
|
|
||||||
STA sp
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
fact_rec . recursive case: acc *= n; n--; fact()
|
|
||||||
|
|
||||||
LDB acc
|
|
||||||
LDS n
|
|
||||||
MULR S,B
|
|
||||||
STB acc
|
|
||||||
|
|
||||||
LDA n
|
|
||||||
SUB #1
|
|
||||||
STA n
|
|
||||||
|
|
||||||
JSUB fact
|
|
||||||
|
|
||||||
. pop L in return to caller
|
|
||||||
LDX sp
|
|
||||||
LDL stackL,X
|
|
||||||
LDA sp
|
|
||||||
SUB #3
|
|
||||||
STA sp
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
.-------------------------------------------
|
|
||||||
. printStdout
|
|
||||||
.
|
|
||||||
. Psevdo:
|
|
||||||
. if A == 0:
|
|
||||||
. print "0\n"
|
|
||||||
. return
|
|
||||||
. ps_val = A
|
|
||||||
. ps_len = 0
|
|
||||||
. while ps_val > 0:
|
|
||||||
. q = ps_val / 10
|
|
||||||
. r = ps_val % 10
|
|
||||||
. buf[ps_len] = '0' + r
|
|
||||||
. ps_len++
|
|
||||||
. ps_val = q
|
|
||||||
. for i = ps_len-1 .. 0:
|
|
||||||
. print buf[i]
|
|
||||||
. print "\r\n"
|
|
||||||
.-------------------------------------------
|
|
||||||
printStdout COMP #0
|
|
||||||
JEQ ps_zero
|
|
||||||
|
|
||||||
STA ps_val
|
|
||||||
LDA #0
|
|
||||||
STA ps_len
|
|
||||||
LDS #10
|
|
||||||
LDT #0x30 . '0'
|
|
||||||
|
|
||||||
ps_div LDA ps_val
|
|
||||||
COMP #0
|
|
||||||
JEQ ps_divdone
|
|
||||||
|
|
||||||
RMO A,B
|
|
||||||
DIVR S,B . kvocient v B
|
|
||||||
RMO B,X . X = kvocient
|
|
||||||
|
|
||||||
MULR S,B
|
|
||||||
SUBR B,A . A = ostanek
|
|
||||||
ADDR T,A . A = '0' + ostanek
|
|
||||||
STA psdigit
|
|
||||||
|
|
||||||
LDA ps_len
|
|
||||||
STA ps_idx
|
|
||||||
LDA #psbuf
|
|
||||||
ADD ps_idx
|
|
||||||
STA ps_ptr
|
|
||||||
LDA psdigit
|
|
||||||
STCH @ps_ptr
|
|
||||||
|
|
||||||
LDA ps_len
|
|
||||||
ADD #1
|
|
||||||
STA ps_len
|
|
||||||
|
|
||||||
RMO X,A
|
|
||||||
STA ps_val
|
|
||||||
J ps_div
|
|
||||||
|
|
||||||
ps_divdone LDA ps_len
|
|
||||||
SUB #1
|
|
||||||
STA ps_idx
|
|
||||||
|
|
||||||
ps_print LDA ps_idx
|
|
||||||
COMP #0
|
|
||||||
JLT ps_end
|
|
||||||
|
|
||||||
LDA #psbuf
|
|
||||||
ADD ps_idx
|
|
||||||
STA ps_ptr
|
|
||||||
LDCH @ps_ptr
|
|
||||||
WD #1
|
|
||||||
|
|
||||||
LDA ps_idx
|
|
||||||
SUB #1
|
|
||||||
STA ps_idx
|
|
||||||
J ps_print
|
|
||||||
|
|
||||||
ps_end LDA #0x0D . CR
|
|
||||||
WD #1
|
|
||||||
LDA #0x0A . LF
|
|
||||||
WD #1
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
ps_zero LDA #0x30 . "0"
|
|
||||||
WD #1
|
|
||||||
LDA #0x0D
|
|
||||||
WD #1
|
|
||||||
LDA #0x0A
|
|
||||||
WD #1
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
.data
|
|
||||||
. rekurzija faktoriala
|
|
||||||
sp WORD 0 . stack pointer
|
|
||||||
n WORD 0
|
|
||||||
acc WORD 0 . akumulator za faktorial
|
|
||||||
stackL RESB 60
|
|
||||||
|
|
||||||
. printStdout
|
|
||||||
ps_val WORD 0
|
|
||||||
ps_len WORD 0
|
|
||||||
ps_idx WORD 0
|
|
||||||
psdigit WORD 0
|
|
||||||
ps_ptr WORD 0
|
|
||||||
psbuf RESB 12
|
|
||||||
|
|
||||||
END prog
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
.code
|
|
||||||
|
|
||||||
stack START 0
|
|
||||||
|
|
||||||
LDA #9
|
|
||||||
STA @stackptr
|
|
||||||
JSUB stackpush
|
|
||||||
|
|
||||||
JSUB stackpop
|
|
||||||
LDA @stackptr
|
|
||||||
|
|
||||||
halt J halt
|
|
||||||
|
|
||||||
|
|
||||||
stackinit
|
|
||||||
STA stacktmp
|
|
||||||
|
|
||||||
LDA #STACK
|
|
||||||
STA stackptr
|
|
||||||
|
|
||||||
LDA stacktmp
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
|
|
||||||
stackpush
|
|
||||||
STA stacktmp
|
|
||||||
|
|
||||||
LDA stackptr
|
|
||||||
ADD #3
|
|
||||||
STA stackptr
|
|
||||||
|
|
||||||
LDA stacktmp
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
|
|
||||||
stackpop
|
|
||||||
STA stacktmp
|
|
||||||
|
|
||||||
LDA stackptr
|
|
||||||
SUB #3
|
|
||||||
STA stackptr
|
|
||||||
|
|
||||||
LDA stacktmp
|
|
||||||
RSUB
|
|
||||||
|
|
||||||
|
|
||||||
.data
|
|
||||||
|
|
||||||
stackptr WORD 0
|
|
||||||
|
|
||||||
stacktmp WORD 0
|
|
||||||
|
|
||||||
STACKSIZE EQU 50
|
|
||||||
STACK RESW STACKSIZE
|
|
||||||
|
|
||||||
END stack
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
cat START 0
|
cat START 0
|
||||||
|
|
||||||
CLEAR X
|
CLEAR X
|
||||||
|
|
||||||
|
|
||||||
read RD #0
|
read RD #0
|
||||||
STCH BUFF, X
|
STCH BUFF, X
|
||||||
Loading…
Add table
Add a link
Reference in a new issue