Ejemplo n.º 1
0
 def tixr(self):
     alu.addrm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
               self.mem,
               1,
               True)
     alu.comprr(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
                reg.getRegister(getRegister1(self.instruction)),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Ejemplo n.º 2
0
    def fetch(self):
        pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
        b = reg.getRegister(reg.SICXE_NUM_REGISTER_B)
        x = reg.getRegister(reg.SICXE_NUM_REGISTER_X)

        ta = getTargetAddress(self.instruction, pc, b, x, self.mem)

        return ta.dec
Ejemplo n.º 3
0
 def tix(self):
     alu.addrm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
               self.mem,
               1,
               True)
     alu.comprm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW),
                self.mem,
                self.fetch(),
                isImidiateInstr(self.instruction))
Ejemplo n.º 4
0
 def norm(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_F).normalize(setSelf=True)
Ejemplo n.º 5
0
 def wd(self):
     device = self.fetch() if isImidiateInstr(self.instruction) else self.mem.getbyte(self.fetch())
     self.devices[device].write(reg.getRegister(reg.SICXE_NUM_REGISTER_A))
Ejemplo n.º 6
0
 def subr(self):
     alu.subrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Ejemplo n.º 7
0
 def stx(self):
     alu.st(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
            self.mem,
            self.fetch())
Ejemplo n.º 8
0
 def rsub(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(reg.getRegister(reg.SICXE_NUM_REGISTER_L))
Ejemplo n.º 9
0
 def j(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(self.fetch())
Ejemplo n.º 10
0
 def float(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_F).set(reg.getRegister(reg.SICXE_NUM_REGISTER_A))
Ejemplo n.º 11
0
 def fix(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_A).set(reg.getRegister(reg.SICXE_NUM_REGISTER_F))
Ejemplo n.º 12
0
 def divr(self):
     alu.divrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Ejemplo n.º 13
0
 def compr(self):
     alu.comprr(reg.getRegister(getRegister1(self.instruction)),
                reg.getRegister(getRegister2(self.instruction)),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Ejemplo n.º 14
0
 def clear(self):
     reg.getRegister(getRegister1(self.instruction)).set(0)
Ejemplo n.º 15
0
 def addr(self):
     alu.addrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Ejemplo n.º 16
0
 def orr(self):
     alu.orrm(reg.getRegister(reg.SICXE_NUM_REGISTER_A),
              self.mem,
              self.fetch(),
              isImidiateInstr(self.instruction))
Ejemplo n.º 17
0
 def rmo(self):
     reg.getRegister(getRegister2(self.instruction)).set(reg.getRegister(getRegister1(self.instruction)))
Ejemplo n.º 18
0
 def jlt(self):
     cc = reg.getRegister(reg.SICXE_NUM_REGISTER_SW).getbits((6, 8), BIG)
     if cc == alu.SICXE_CC_LT: self.j()
Ejemplo n.º 19
0
 def shiftr(self):
     alu.shiftr(reg.getRegister(getRegister1(self.instruction)),
                getRegister2(self.instruction))
Ejemplo n.º 20
0
 def setStartingAddress(self, addr):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(addr)
Ejemplo n.º 21
0
 def subf(self):
     alu.subfrm(reg.getRegister(reg.SICXE_NUM_REGISTER_F),
                self.mem,
                self.fetch(),
                isImidiateInstr(self.instruction))
Ejemplo n.º 22
0
 def jne(self):
     cc = reg.getRegister(reg.SICXE_NUM_REGISTER_SW).getbits((6, 8), BIG)
     if cc != alu.SICXE_CC_EQ: self.j()
Ejemplo n.º 23
0
 def td(self):
     device = self.mem.getbyte(self.fetch())
     self.devices[device].test(reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Ejemplo n.º 24
0
 def jsub(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_L).set(reg.getRegister(reg.SICXE_NUM_REGISTER_PC))
     self.j()
Ejemplo n.º 25
0
 def ldx(self):
     alu.ld(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
            self.mem,
            self.fetch(),
            isImidiateInstr(self.instruction))
Ejemplo n.º 26
0
 def mulr(self):
     alu.mulrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Ejemplo n.º 27
0
 def ontick(self):
     self.instruction = self.getInstruction()
     pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
     pc.add(len(self.getInstruction()), setSelf=True)
Ejemplo n.º 28
0
 def getInstruction(self):
     pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
     instr = self.mem.get(int(pc), 2, asbytearr=True)
     length = getFormat(instr)
     return self.mem.get(int(pc), length, asbytearr=True)