Website Summary Files Commits Branches @commit @diff @stats
path: root / examples / example3.s
diff options
context:
space:
mode:
1 files changed, 18 insertions, 0 deletions
-rw-r--r--examples/example3.s18
diff --git a/examples/example3.s b/examples/example3.s
new file mode 100644
index 0000000..fa65c4b
--- /dev/null
+++ b/examples/example3.s
@@ -0,0 +1,18 @@
+; Tonkobali assembler will assemble this program into a series of i64 values
+; Every instruction here is composed of SUBLEQ instructions!
+
+condition = 0
+modifier = 5
+operand = 10
+jmp main ; Start execution from main
+
+label_add: add modifier, operand ; operand += modifier
+ rts ; return from subroutine
+label_sub: sub modifier, operand ; operand -= modifier
+ rts ; return from subroutine
+
+main: beq condition, do_add ; if condition == 0 goto do_add
+do_sub: jsr label_sub ; else enter label_sub subroutine
+ jmp continue
+do_add: jsr label_add ; enter label_add subroutine
+continue: mov operand, %1000 ; Mem[1000] = operand