diff options
1 files changed, 18 insertions, 0 deletions
| -rw-r--r-- | examples/example3.s | 18 |
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 |
