122 lines
2.1 KiB
Plaintext
122 lines
2.1 KiB
Plaintext
|
|
// GENERATED BY DSC COMPILER
|
|
// Generated at 2026-02-05 00:42:40
|
|
|
|
// Imports
|
|
include print: "./lib/io/print.dsa"
|
|
include arena: "./lib/memory/arena_alloc.dsa"
|
|
|
|
// Globals & Reserved Memory
|
|
|
|
|
|
// Entry Point
|
|
dw stack: 0x10000
|
|
db message: "Process Exited with code:"
|
|
_init:
|
|
ldw stack, bpr
|
|
mov bpr, spr
|
|
push zero
|
|
call main
|
|
call print::print_newline
|
|
lwi message, rg0
|
|
push rg0
|
|
call print::print
|
|
pop zero
|
|
call print::print_hex_word
|
|
pop zero
|
|
hlt
|
|
|
|
|
|
// Return
|
|
_ret:
|
|
mov bpr, spr
|
|
pop bpr
|
|
return
|
|
|
|
// Compiled Code Starts...
|
|
main:
|
|
push bpr
|
|
mov spr, bpr
|
|
|
|
lli 0, rg0
|
|
push rg0 // bpr-4: x
|
|
subi bpr 4 rg1
|
|
lli 512, rg0
|
|
push rg1 // bpr-8: y
|
|
push rg0 // push arg 0
|
|
call arena::new
|
|
pop rg2
|
|
lli 32, rg0
|
|
push rg2 // bpr-12: alloc
|
|
push rg0 // push arg 1
|
|
push rg2 // push arg 0
|
|
call arena::alloc
|
|
pop rg3
|
|
pop zero
|
|
lli 32, rg0
|
|
subi bpr 12 rg2
|
|
ldw rg2, rg2 // bpr-20: alloc
|
|
push rg2 // bpr-16: alloc
|
|
push rg3 // bpr-20: ptr1
|
|
push rg0 // push arg 1
|
|
push rg2 // push arg 0
|
|
call arena::alloc
|
|
pop rg4
|
|
pop zero
|
|
subi bpr 16 rg0
|
|
ldw rg0, rg0 // bpr-24: alloc
|
|
push rg4 // bpr-24: ptr2
|
|
push rg0 // bpr-28: alloc
|
|
push rg0 // push arg 0
|
|
call print::print_hex_word
|
|
pop zero
|
|
call print::print_newline
|
|
subi bpr 20 rg0
|
|
ldw rg0, rg0 // bpr-28: ptr1
|
|
push rg0 // bpr-32: ptr1
|
|
push rg0 // push arg 0
|
|
call print::print_hex_word
|
|
pop zero
|
|
call print::print_newline
|
|
subi bpr 24 rg0
|
|
ldw rg0, rg0 // bpr-32: ptr2
|
|
push rg0 // bpr-36: ptr2
|
|
push rg0 // push arg 0
|
|
call print::print_hex_word
|
|
pop zero
|
|
call print::print_newline
|
|
subi bpr 36 rg0
|
|
ldw rg0, rg0 // bpr-44: ptr2
|
|
ldw rg0, rg2
|
|
push rg0 // bpr-40: ptr2
|
|
push rg2 // push arg 0
|
|
call print::print_num
|
|
pop zero
|
|
call print::print_newline
|
|
lli 42, rg2
|
|
subi bpr 40 rg5
|
|
ldw rg5, rg5 // bpr-48: ptr2
|
|
stw rg2, rg5
|
|
push rg5 // bpr-44: ptr2
|
|
push rg5 // push arg 0
|
|
call print::print_hex_word
|
|
pop zero
|
|
call print::print_newline
|
|
subi bpr 44 rg2
|
|
ldw rg2, rg2 // bpr-52: ptr2
|
|
ldw rg2, rg5
|
|
push rg2 // bpr-48: ptr2
|
|
push rg5 // push arg 0
|
|
call print::print_num
|
|
pop zero
|
|
call print::print_newline
|
|
db str_1: "end"
|
|
lwi str_1, rg5
|
|
push rg5 // push arg 0
|
|
call print::println
|
|
pop zero
|
|
lli 0, rg5
|
|
stw rg5, bpr, 8
|
|
jmp _ret
|
|
|