aboutsummaryrefslogtreecommitdiffstats
path: root/src/ext_std.py
blob: 017f40a05aec9f370535688ba06e960e503fb19d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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,
}