aboutsummaryrefslogtreecommitdiffstats
path: root/src/ext_std.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext_std.py')
-rw-r--r--src/ext_std.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ext_std.py b/src/ext_std.py
new file mode 100644
index 0000000..017f40a
--- /dev/null
+++ b/src/ext_std.py
@@ -0,0 +1,24 @@
+from assembler_ops import *
+
+def make_add(address:int, left: str, right: str, target: str) -> list[int]:
+ return make_alr(address, "al_plus", left, right, target)
+
+def make_sub(address: int, left: str, right: str, target: str) -> list[int]:
+ return make_alr(address, "al_minus", left, right, target)
+
+def make_inc(address: int, reg: str) -> list[int]:
+ return make_ali(address, "al_plus", reg, "1", reg)
+
+def make_dec(address: int, reg: str) -> list[int]:
+ return make_ali(address, "al_minus", reg, "1", reg)
+
+def make_mov(address: int, from_reg: str, to_reg: str) -> list[int]:
+ return make_ali(address, "al_plus", from_reg, "0", to_reg)
+
+operations = {
+ "add": make_add,
+ "sub": make_sub,
+ "inc": make_inc,
+ "dec": make_dec,
+ "mov": make_mov,
+}