diff options
Diffstat (limited to 'linux/ex3.2.mu')
-rw-r--r-- | linux/ex3.2.mu | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/linux/ex3.2.mu b/linux/ex3.2.mu new file mode 100644 index 00000000..d06928fe --- /dev/null +++ b/linux/ex3.2.mu @@ -0,0 +1,33 @@ +# Unnecessarily use an array to sum 1..10 +# +# To run: +# $ ./translate_mu apps/ex3.2.mu +# $ ./a.elf +# $ echo $? +# 55 + +fn main -> _/ebx: int { + # populate a + var a: (array int 0xb) # 11; we waste index 0 + var i/ecx: int <- copy 1 + { + compare i, 0xb + break-if->= + var x/eax: (addr int) <- index a, i + copy-to *x, i + i <- increment + loop + } + # sum + var result/edx: int <- copy 0 + i <- copy 1 + { + compare i, 0xb + break-if->= + var x/eax: (addr int) <- index a, i + result <- add *x + i <- increment + loop + } + return result +} |