diff options
Diffstat (limited to 'src/ext_std.py')
| -rw-r--r-- | src/ext_std.py | 24 |
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, +} |
