I should go to sleep frfr.
This commit is contained in:
@@ -16,13 +16,13 @@ impl Syntax {
|
||||
"xor", "nand", "nor", "xnor", "irt", "int", "hlt",
|
||||
// pseduo-instructions
|
||||
"db", "dh", "dw", "resb", "resh", "resw", "push", "pop", "lwi", "call",
|
||||
"ret",
|
||||
"include",
|
||||
]),
|
||||
types: BTreeSet::from([]),
|
||||
special: BTreeSet::from([
|
||||
"rg0", "rg1", "rg2", "rg3", "rg4", "rg5", "rg6", "rg7", "rg8", "rg9",
|
||||
"rga", "rgb", "rgc", "rgd", "rge", "rgf", "acc", "spr", "bpr", "ret",
|
||||
"idr", "mmr", "zero", "null",
|
||||
"idr", "mmr", "zero", "null", "pcx", "mdr", "mar", "sts", "cir",
|
||||
]),
|
||||
}
|
||||
}
|
||||
|
||||
+15
-22
@@ -1,27 +1,20 @@
|
||||
db fib_count: 10 // How many more numbers to calculate after F(0) and F(1)
|
||||
|
||||
init:
|
||||
lli 0, rg0 // F(0) = 0
|
||||
lli 1, rg1 // F(1) = 1
|
||||
ldb fib_count, rg2
|
||||
fib_n:
|
||||
pop ret
|
||||
pop rg0 // n
|
||||
|
||||
loop:
|
||||
add rg0, rg1, acc // rg4 = rg0 + rg1 (new Fibonacci number)
|
||||
lli 0, rg1
|
||||
lli 1, rg2
|
||||
|
||||
push rg0
|
||||
mov rg1, rg0 // rg0 = previous rg1 (F(n-2) = F(n-1))
|
||||
mov acc, rg1 // rg1 = rg4 (F(n-1) = F(n))
|
||||
start:
|
||||
add rg1, rg2, acc
|
||||
push rg1
|
||||
mov rg2, rg1
|
||||
mov acc, rg2
|
||||
|
||||
dec rg2 // rg2 = rg2 - 1
|
||||
|
||||
cmp rg2, zero // Compare counter with 0
|
||||
jgt loop // Jump back if counter > 0
|
||||
|
||||
finish:
|
||||
push rg0,
|
||||
push rg1,
|
||||
// Final Fibonacci number is in rg1
|
||||
hlt
|
||||
|
||||
// jmp print::run
|
||||
|
||||
cmp rg0, zero
|
||||
dec rg0
|
||||
|
||||
jgt start
|
||||
jmp 4, ret
|
||||
+19
-2
@@ -1,12 +1,15 @@
|
||||
include print "../resources/dsa/print.dsa"
|
||||
include fib "../resources/dsa/fib.dsa"
|
||||
|
||||
dw stack: 0x10000
|
||||
db string: "Hello world! This is about to be dependency hell..."
|
||||
db string2: "And extremely jank. Ridiculously, unfathomably jank."
|
||||
|
||||
init:
|
||||
dw stack: 0x10000
|
||||
ldw stack, bpr
|
||||
mov bpr, spr
|
||||
|
||||
start:
|
||||
db string: "Damn this works pretty well"
|
||||
lwi string, rg1
|
||||
|
||||
// push variables
|
||||
@@ -15,4 +18,18 @@ start:
|
||||
|
||||
// call
|
||||
jmp print::print
|
||||
|
||||
|
||||
lli 25, rg0
|
||||
push rg0
|
||||
push pcx
|
||||
jmp fib::fib_n
|
||||
|
||||
|
||||
lwi string2, rg1
|
||||
push rg1
|
||||
push pcx
|
||||
|
||||
jmp print::print
|
||||
|
||||
hlt
|
||||
Reference in New Issue
Block a user