;  a b s are local variables
;sum a b
;  s = 0
;  while a <= b
;    s = s + a
;    a = a + 1
;  ret s
;
;main
;  print sum 1 10

; a program to sum 1..10

a  3
b  2
s  1
#
:main
  lit.1
  lit.10
  call.sum    ; sum(1,10)
  sys.1       ; print
  sys.13      ; stop

:sum
  fun.2
  lit.0
  put.s       ; s = 0
  jmp.in
:loop
  get.s
  get.a
  add
  put.s       ; s = s + a
  inc.a       ; a = a + 1
:in
  get.a
  get.b
  le
  jt.loop     ; loop if a <= b
  get.s
  ret.4
#
