undar-lang/test/add.ul.ir

38 lines
766 B
Plaintext

global const int x = 1
global const int y = 1
function main ()
int a is $0
int b is $1
int ans is $2
str ans_string is $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 is $0, int b is $1)
int result is $2
add_int a b -> result
return result
function pln (str message is $0)
str ts is $1
int mode is $5
int msg_length is $2
str nl is $3
int nl_length is $4
load_heap_immediate ts "/dev/term/0" # get terminal device
load_immediate 0 -> mode
syscall OPEN ts mode -> ts
strlen message -> msg_length
syscall WRITE ts message msg_length
load_heap_immediate "\n" -> nl
strlen nl -> nl_length
syscall WRITE ts nl nl_length
return