undar-lang/test/add.ul.ir

38 lines
724 B
Plaintext

global str terminal_namespace = "/dev/term/0"
global str new_line = "\n"
global int x = 1
global int y = 1
function main ()
int a $0
int b $1
int ans $2
str ans_string $3
load_absolute_32 &x -> a
load_absolute_32 &y -> b
call add a b -> ans
int_to_string ans -> ans_string
call pln ans_string
exit 0
function add (int a $0, int b $1)
int result $2
add_int a b -> result
return result
function pln (str message $0)
str term $1
int msg_length $2
str nl $3
int nl_length $4
int mode $5
load_immediate 0 -> mode
syscall OPEN &terminal_namespace mode -> term
strlen message -> msg_length
syscall WRITE term message msg_length
strlen &new_line -> nl_length
syscall WRITE term nl nl_length
return