diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..1a7006d Binary files /dev/null and b/.DS_Store differ diff --git a/pyssemble/pyInstruction.py b/pyssemble/pyInstruction.py index 5600978..c503aa8 100644 --- a/pyssemble/pyInstruction.py +++ b/pyssemble/pyInstruction.py @@ -100,3 +100,33 @@ def __init__(self, *args): def execute(self): self.regs[self.rd] = self.val self.pc.step() + +class eor(RegInstruction): + func = lambda _, arg1, arg2: 0 if arg1 == arg2 else 1 + +class lsl(RegInstruction): + func = lambda _, __, arg, amt: arg << amt + +class rsl(RegInstruction): + func = lambda _, __, arg, amt: arg >> amt + +class asr(RegInstruction): + def func(_, arg, amt): + if arg >= 0: + return arg >> amt + else: + +class mul(RegInstruction): + func = lambda _, arg1, arg2: arg1 * arg2 #CHECK + +# class smull(RegInstruction) #INCOMPLETE + +# class umull(RegInstruction) + +# class B.cond(RegInstruction) + + + + + +