77 lines
911 B
Plaintext
77 lines
911 B
Plaintext
|
|
include print: "./print.dsa"
|
|
dw stack: 0x10000
|
|
|
|
_init:
|
|
ldw stack, bpr
|
|
mov bpr, spr
|
|
main:
|
|
push zero
|
|
call program
|
|
call print::print_hex_word
|
|
pop zero
|
|
hlt
|
|
|
|
program: func
|
|
push rg0
|
|
push rg1
|
|
lli 5, rg0
|
|
push rg0
|
|
lli 4, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
sub rg0, rg1, rg0
|
|
push rg0
|
|
lli 4, rg0
|
|
push rg0
|
|
lli 3, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
sub rg0, rg1, rg0
|
|
push rg0
|
|
lli 3, rg0
|
|
push rg0
|
|
lli 2, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
sub rg0, rg1, rg0
|
|
push rg0
|
|
lli 2, rg0
|
|
push rg0
|
|
lli 1, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
sub rg0, rg1, rg0
|
|
push rg0
|
|
lli 60, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
add rg0, rg1, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
add rg0, rg1, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
add rg0, rg1, rg0
|
|
push rg0
|
|
pop rg1
|
|
pop rg0
|
|
add rg0, rg1, rg0
|
|
push rg0
|
|
|
|
// return value in bpr+8
|
|
pop rg0
|
|
stw rg0, bpr, 8
|
|
|
|
// epilogue
|
|
pop rg1
|
|
pop rg0
|
|
return
|