Website Summary Files Commits Branches @commit @diff @stats
path: root / assembler / example.s
diff options
context:
space:
mode:
Commit9c656c296827172589243d588f57f9ab2745efc6 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-02-14 08:50:49 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-02-14 08:50:49 +0200
Filesac637c6034d5e8e2dcb50f609b4b063ca7422add /assembler/example.s
tonkobali-9c656c296827172589243d588f57f9ab2745efc6.tar
tonkobali-9c656c296827172589243d588f57f9ab2745efc6.tar.gz
tonkobali-9c656c296827172589243d588f57f9ab2745efc6.zip
Parent9517d3d05e86621b6c4ed58edd7f5821632e0872 (diff)
feat(assembler): Implement beq and mov instructions
1 files changed, 43 insertions, 2 deletions
-rw-r--r--assembler/example.s45
diff --git a/assembler/example.s b/assembler/example.s
index 8b92ddf..b7c45ee 100644
--- a/assembler/example.s
+++ b/assembler/example.s
@@ -1,2 +1,43 @@
-add 331, 95
-jmp %0
+beq condition, if_true
+jmp if_false
+
+if_true:
+ mov 517, %1
+ jmp endif
+
+if_false:
+ mov 1952, %1
+
+endif:
+ jmp %0
+
+condition = 0
+
+; 0 beq Memory(0), Instruction(2),
+; 0: subleq Memory(0), Memory(0), Instruction(2),
+; 1: subleq Memory(0), Memory(0), Instruction(4),
+; 2: subleq Memory(0), Memory(0), Instruction(3),
+; 3: subleq Memory(0), Memory(0), Instruction( 5 ),
+;
+; 1 jmp Instruction(4),
+; 4: subleq Memory(0), Memory(0), Instruction( 10 ),
+;
+;if_true:
+; 2 mov Constants(0), Memory(1),
+; 5: subleq Memory(1), Memory(1), Instruction(6),
+; 6: subleq Constants(0), Memory(0), Instruction(7),
+; 7: subleq Memory(0), Memory(1), Instruction(8),
+; 8: subleq Memory(0), Memory(0), Instruction(9),
+;
+; 3 jmp Instruction(5),
+; 9: subleq Memory(0), Memory(0), Instruction( 14 ),
+;
+;if_false:
+; 4 mov Constants(1), Memory(4),
+; 10: subleq Memory(1), Memory(1), Instruction(11),
+; 11: subleq Constants(1), Memory(0), Instruction(12),
+; 12: subleq Memory(0), Memory(1), Instruction(13),
+; 13: subleq Memory(0), Memory(0), Instruction(14),
+;
+; 5 jmp Memory(0),
+; 14: subleq Memory(0), Memory(0), Memory(0),