diff options
| Commit | c1c2a973906812ff31faf534c4bc384e895cadfe (patch) | |
|---|---|---|
| Author | 2025-03-20 17:08:15 +0200 | |
| Committer | 2025-03-20 17:08:15 +0200 | |
| Files | 54671148b989324071465ba2f3b4f1645fe294e0 /examples/example3.s | |
| tonkobali-main.tar tonkobali-main.tar.gz tonkobali-main.zip | ||
| Parent | bb8c3f02d7c3c318e67575167886de1da123b95a (diff) | |
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 |
