undar-lang/test/simple.ul.ir

32 lines
672 B
Plaintext

global const real x = 1.0
global const real y = 1.0
function main ()
real x is $0
load_absolute_32 &x -> x
real y is $1
load_absolute_32 &y -> y
real result is $2
add_real x y -> result
str result_str is $3
real_to_string result -> result_str
call &pln result_str
exit 0
function pln (str message is $0)
str term is $1
int msg_length is $2
str nl is $3
int nl_length is $4
int mode is $5
malloc_immediate "/dev/term/0" -> term
load_immediate 0 -> mode
syscall OPEN term mode -> term
strlen message -> msg_length
syscall WRITE term message msg_length
malloc_immediate "\n" -> nl
strlen nl -> nl_length
syscall WRITE term nl nl_length
return