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