ducky.cpu.instructions module¶
-
class
ducky.cpu.instructions.ADD(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'add'¶
-
opcode= <DuckyOpcodes.ADD: 28>¶
-
-
class
ducky.cpu.instructions.AND(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BITOP-
mnemonic= 'and'¶
-
opcode= <DuckyOpcodes.AND: 34>¶
-
-
class
ducky.cpu.instructions.BE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'be'¶
-
-
class
ducky.cpu.instructions.BG(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bg'¶
-
-
class
ducky.cpu.instructions.BGE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bge'¶
-
-
class
ducky.cpu.instructions.BL(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bl'¶
-
-
class
ducky.cpu.instructions.BLE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'ble'¶
-
-
class
ducky.cpu.instructions.BNE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bne'¶
-
-
class
ducky.cpu.instructions.BNO(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bno'¶
-
-
class
ducky.cpu.instructions.BNS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bns'¶
-
-
class
ducky.cpu.instructions.BNZ(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bnz'¶
-
-
class
ducky.cpu.instructions.BO(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bo'¶
-
-
class
ducky.cpu.instructions.BS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bs'¶
-
-
class
ducky.cpu.instructions.BZ(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BRANCH-
mnemonic= 'bz'¶
-
-
class
ducky.cpu.instructions.CALL(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._JUMP-
mnemonic= 'call'¶
-
opcode= <DuckyOpcodes.CALL: 15>¶
-
-
class
ducky.cpu.instructions.CAS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'cas'¶
-
opcode= <DuckyOpcodes.CAS: 7>¶
-
operands= 'r,r,r'¶
-
-
class
ducky.cpu.instructions.CLI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'cli'¶
-
opcode= <DuckyOpcodes.CLI: 17>¶
-
-
class
ducky.cpu.instructions.CMP(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._CMP-
mnemonic= 'cmp'¶
-
opcode= <DuckyOpcodes.CMP: 47>¶
-
-
class
ducky.cpu.instructions.CMPU(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._CMP-
mnemonic= 'cmpu'¶
-
opcode= <DuckyOpcodes.CMPU: 48>¶
-
-
class
ducky.cpu.instructions.CTR(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R_R-
mnemonic= 'ctr'¶
-
opcode= <DuckyOpcodes.CTR: 60>¶
-
-
class
ducky.cpu.instructions.CTW(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R_R-
mnemonic= 'ctw'¶
-
opcode= <DuckyOpcodes.CTW: 61>¶
-
-
class
ducky.cpu.instructions.DEC(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R-
mnemonic= 'dec'¶
-
opcode= <DuckyOpcodes.DEC: 27>¶
-
-
class
ducky.cpu.instructions.DIV(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'div'¶
-
opcode= <DuckyOpcodes.DIV: 31>¶
-
-
class
ducky.cpu.instructions.Descriptor(instruction_set)[source]¶ Bases:
object-
inst_aligned= False¶
-
mnemonic= None¶
-
opcode= None¶
-
operands= None¶
-
pattern= None¶
-
relative_address= False¶
-
-
class
ducky.cpu.instructions.Descriptor_I(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'i'¶
-
-
class
ducky.cpu.instructions.Descriptor_R(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'r'¶
-
-
class
ducky.cpu.instructions.Descriptor_RI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'ri'¶
-
-
class
ducky.cpu.instructions.Descriptor_RI_R(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'ri,r'¶
-
-
class
ducky.cpu.instructions.Descriptor_R_I(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'r,i'¶
-
-
class
ducky.cpu.instructions.Descriptor_R_R(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'r,r'¶
-
-
class
ducky.cpu.instructions.Descriptor_R_RI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
operands= 'r,ri'¶
-
-
class
ducky.cpu.instructions.DuckyInstructionSet[source]¶ Bases:
ducky.cpu.instructions.InstructionSet-
instruction_set_id= 0¶
-
instructions= [<ducky.cpu.instructions.NOP object at 0x7f16cbe01e50>, <ducky.cpu.instructions.INT object at 0x7f16cbe01f50>, <ducky.cpu.instructions.IPI object at 0x7f16cbe01f90>, <ducky.cpu.instructions.RETINT object at 0x7f16cbe01fd0>, <ducky.cpu.instructions.CALL object at 0x7f16cbd95090>, <ducky.cpu.instructions.RET object at 0x7f16cbd950d0>, <ducky.cpu.instructions.CLI object at 0x7f16cbd95150>, <ducky.cpu.instructions.STI object at 0x7f16cbd951d0>, <ducky.cpu.instructions.HLT object at 0x7f16cbd95250>, <ducky.cpu.instructions.RST object at 0x7f16cbd95290>, <ducky.cpu.instructions.IDLE object at 0x7f16cbd95310>, <ducky.cpu.instructions.PUSH object at 0x7f16cbd95390>, <ducky.cpu.instructions.POP object at 0x7f16cbd953d0>, <ducky.cpu.instructions.INC object at 0x7f16cbd95410>, <ducky.cpu.instructions.DEC object at 0x7f16cbd95450>, <ducky.cpu.instructions.ADD object at 0x7f16cbd95490>, <ducky.cpu.instructions.SUB object at 0x7f16cbd954d0>, <ducky.cpu.instructions.CMP object at 0x7f16cbd95510>, <ducky.cpu.instructions.J object at 0x7f16cbd95550>, <ducky.cpu.instructions.INW object at 0x7f16cbd95590>, <ducky.cpu.instructions.INB object at 0x7f16cbd955d0>, <ducky.cpu.instructions.INS object at 0x7f16cbd95610>, <ducky.cpu.instructions.OUTS object at 0x7f16cbd95650>, <ducky.cpu.instructions.OUTW object at 0x7f16cbd95690>, <ducky.cpu.instructions.OUTB object at 0x7f16cbd956d0>, <ducky.cpu.instructions.AND object at 0x7f16cbd95710>, <ducky.cpu.instructions.OR object at 0x7f16cbd95750>, <ducky.cpu.instructions.XOR object at 0x7f16cbd95790>, <ducky.cpu.instructions.NOT object at 0x7f16cbd957d0>, <ducky.cpu.instructions.SHIFTL object at 0x7f16cbd95810>, <ducky.cpu.instructions.SHIFTR object at 0x7f16cbd95850>, <ducky.cpu.instructions.LW object at 0x7f16cbd95890>, <ducky.cpu.instructions.LS object at 0x7f16cbd958d0>, <ducky.cpu.instructions.LB object at 0x7f16cbd95910>, <ducky.cpu.instructions.LI object at 0x7f16cbd95950>, <ducky.cpu.instructions.LIU object at 0x7f16cbd95990>, <ducky.cpu.instructions.LA object at 0x7f16cbd959d0>, <ducky.cpu.instructions.STW object at 0x7f16cbd95a10>, <ducky.cpu.instructions.STS object at 0x7f16cbd95a50>, <ducky.cpu.instructions.STB object at 0x7f16cbd95a90>, <ducky.cpu.instructions.MOV object at 0x7f16cbd95ad0>, <ducky.cpu.instructions.SWP object at 0x7f16cbd95b10>, <ducky.cpu.instructions.MUL object at 0x7f16cbd95b50>, <ducky.cpu.instructions.DIV object at 0x7f16cbd95b90>, <ducky.cpu.instructions.UDIV object at 0x7f16cbd95bd0>, <ducky.cpu.instructions.MOD object at 0x7f16cbd95c10>, <ducky.cpu.instructions.CMPU object at 0x7f16cbd95c50>, <ducky.cpu.instructions.CAS object at 0x7f16cbd95c90>, <ducky.cpu.instructions.SIS object at 0x7f16cbd95cd0>, <ducky.cpu.instructions.BE object at 0x7f16cbd95d10>, <ducky.cpu.instructions.BNE object at 0x7f16cbd95d50>, <ducky.cpu.instructions.BZ object at 0x7f16cbd95d90>, <ducky.cpu.instructions.BNZ object at 0x7f16cbd95dd0>, <ducky.cpu.instructions.BO object at 0x7f16cbd95e10>, <ducky.cpu.instructions.BNO object at 0x7f16cbd95e50>, <ducky.cpu.instructions.BS object at 0x7f16cbd95e90>, <ducky.cpu.instructions.BNS object at 0x7f16cbd95ed0>, <ducky.cpu.instructions.BG object at 0x7f16cbd95f10>, <ducky.cpu.instructions.BGE object at 0x7f16cbd95f50>, <ducky.cpu.instructions.BL object at 0x7f16cbd95f90>, <ducky.cpu.instructions.BLE object at 0x7f16cbd95fd0>, <ducky.cpu.instructions.SETE object at 0x7f16cbda7050>, <ducky.cpu.instructions.SETNE object at 0x7f16cbda7090>, <ducky.cpu.instructions.SETZ object at 0x7f16cbda70d0>, <ducky.cpu.instructions.SETNZ object at 0x7f16cbda7110>, <ducky.cpu.instructions.SETO object at 0x7f16cbda7150>, <ducky.cpu.instructions.SETNO object at 0x7f16cbda7190>, <ducky.cpu.instructions.SETS object at 0x7f16cbda71d0>, <ducky.cpu.instructions.SETNS object at 0x7f16cbda7210>, <ducky.cpu.instructions.SETG object at 0x7f16cbda7250>, <ducky.cpu.instructions.SETGE object at 0x7f16cbda7290>, <ducky.cpu.instructions.SETL object at 0x7f16cbda72d0>, <ducky.cpu.instructions.SETLE object at 0x7f16cbda7310>, <ducky.cpu.instructions.LPM object at 0x7f16cbda7350>, <ducky.cpu.instructions.CTR object at 0x7f16cbda73d0>, <ducky.cpu.instructions.CTW object at 0x7f16cbda7410>, <ducky.cpu.instructions.FPTC object at 0x7f16cbda7450>]¶
-
opcode_desc_map= {<DuckyOpcodes.NOP: 0>: <ducky.cpu.instructions.NOP object at 0x7f16cbe01e50>, <DuckyOpcodes.LW: 1>: <ducky.cpu.instructions.LW object at 0x7f16cbd95890>, <DuckyOpcodes.LS: 2>: <ducky.cpu.instructions.LS object at 0x7f16cbd958d0>, <DuckyOpcodes.LB: 3>: <ducky.cpu.instructions.LB object at 0x7f16cbd95910>, <DuckyOpcodes.STW: 4>: <ducky.cpu.instructions.STW object at 0x7f16cbd95a10>, <DuckyOpcodes.STS: 5>: <ducky.cpu.instructions.STS object at 0x7f16cbd95a50>, <DuckyOpcodes.STB: 6>: <ducky.cpu.instructions.STB object at 0x7f16cbd95a90>, <DuckyOpcodes.CAS: 7>: <ducky.cpu.instructions.CAS object at 0x7f16cbd95c90>, <DuckyOpcodes.LA: 8>: <ducky.cpu.instructions.LA object at 0x7f16cbd959d0>, <DuckyOpcodes.LI: 9>: <ducky.cpu.instructions.LI object at 0x7f16cbd95950>, <DuckyOpcodes.LIU: 10>: <ducky.cpu.instructions.LIU object at 0x7f16cbd95990>, <DuckyOpcodes.MOV: 11>: <ducky.cpu.instructions.MOV object at 0x7f16cbd95ad0>, <DuckyOpcodes.SWP: 12>: <ducky.cpu.instructions.SWP object at 0x7f16cbd95b10>, <DuckyOpcodes.INT: 13>: <ducky.cpu.instructions.INT object at 0x7f16cbe01f50>, <DuckyOpcodes.RETINT: 14>: <ducky.cpu.instructions.RETINT object at 0x7f16cbe01fd0>, <DuckyOpcodes.CALL: 15>: <ducky.cpu.instructions.CALL object at 0x7f16cbd95090>, <DuckyOpcodes.RET: 16>: <ducky.cpu.instructions.RET object at 0x7f16cbd950d0>, <DuckyOpcodes.CLI: 17>: <ducky.cpu.instructions.CLI object at 0x7f16cbd95150>, <DuckyOpcodes.STI: 18>: <ducky.cpu.instructions.STI object at 0x7f16cbd951d0>, <DuckyOpcodes.RST: 19>: <ducky.cpu.instructions.RST object at 0x7f16cbd95290>, <DuckyOpcodes.HLT: 20>: <ducky.cpu.instructions.HLT object at 0x7f16cbd95250>, <DuckyOpcodes.IDLE: 21>: <ducky.cpu.instructions.IDLE object at 0x7f16cbd95310>, <DuckyOpcodes.LPM: 22>: <ducky.cpu.instructions.LPM object at 0x7f16cbda7350>, <DuckyOpcodes.IPI: 23>: <ducky.cpu.instructions.IPI object at 0x7f16cbe01f90>, <DuckyOpcodes.PUSH: 24>: <ducky.cpu.instructions.PUSH object at 0x7f16cbd95390>, <DuckyOpcodes.POP: 25>: <ducky.cpu.instructions.POP object at 0x7f16cbd953d0>, <DuckyOpcodes.INC: 26>: <ducky.cpu.instructions.INC object at 0x7f16cbd95410>, <DuckyOpcodes.DEC: 27>: <ducky.cpu.instructions.DEC object at 0x7f16cbd95450>, <DuckyOpcodes.ADD: 28>: <ducky.cpu.instructions.ADD object at 0x7f16cbd95490>, <DuckyOpcodes.SUB: 29>: <ducky.cpu.instructions.SUB object at 0x7f16cbd954d0>, <DuckyOpcodes.MUL: 30>: <ducky.cpu.instructions.MUL object at 0x7f16cbd95b50>, <DuckyOpcodes.DIV: 31>: <ducky.cpu.instructions.DIV object at 0x7f16cbd95b90>, <DuckyOpcodes.UDIV: 32>: <ducky.cpu.instructions.UDIV object at 0x7f16cbd95bd0>, <DuckyOpcodes.MOD: 33>: <ducky.cpu.instructions.MOD object at 0x7f16cbd95c10>, <DuckyOpcodes.AND: 34>: <ducky.cpu.instructions.AND object at 0x7f16cbd95710>, <DuckyOpcodes.OR: 35>: <ducky.cpu.instructions.OR object at 0x7f16cbd95750>, <DuckyOpcodes.XOR: 36>: <ducky.cpu.instructions.XOR object at 0x7f16cbd95790>, <DuckyOpcodes.NOT: 37>: <ducky.cpu.instructions.NOT object at 0x7f16cbd957d0>, <DuckyOpcodes.SHIFTL: 38>: <ducky.cpu.instructions.SHIFTL object at 0x7f16cbd95810>, <DuckyOpcodes.SHIFTR: 39>: <ducky.cpu.instructions.SHIFTR object at 0x7f16cbd95850>, <DuckyOpcodes.OUTW: 40>: <ducky.cpu.instructions.OUTW object at 0x7f16cbd95690>, <DuckyOpcodes.OUTS: 41>: <ducky.cpu.instructions.OUTS object at 0x7f16cbd95650>, <DuckyOpcodes.OUTB: 42>: <ducky.cpu.instructions.OUTB object at 0x7f16cbd956d0>, <DuckyOpcodes.INW: 43>: <ducky.cpu.instructions.INW object at 0x7f16cbd95590>, <DuckyOpcodes.INS: 44>: <ducky.cpu.instructions.INS object at 0x7f16cbd95610>, <DuckyOpcodes.INB: 45>: <ducky.cpu.instructions.INB object at 0x7f16cbd955d0>, <DuckyOpcodes.J: 46>: <ducky.cpu.instructions.J object at 0x7f16cbd95550>, <DuckyOpcodes.CMP: 47>: <ducky.cpu.instructions.CMP object at 0x7f16cbd95510>, <DuckyOpcodes.CMPU: 48>: <ducky.cpu.instructions.CMPU object at 0x7f16cbd95c50>, <DuckyOpcodes.SET: 49>: <ducky.cpu.instructions.SETLE object at 0x7f16cbda7310>, <DuckyOpcodes.BRANCH: 50>: <ducky.cpu.instructions.BLE object at 0x7f16cbd95fd0>, <DuckyOpcodes.CTR: 60>: <ducky.cpu.instructions.CTR object at 0x7f16cbda73d0>, <DuckyOpcodes.CTW: 61>: <ducky.cpu.instructions.CTW object at 0x7f16cbda7410>, <DuckyOpcodes.FPTC: 62>: <ducky.cpu.instructions.FPTC object at 0x7f16cbda7450>, <DuckyOpcodes.SIS: 63>: <ducky.cpu.instructions.SIS object at 0x7f16cbd95cd0>}¶
-
opcode_encoding_map= {<DuckyOpcodes.NOP: 0>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.LW: 1>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.LS: 2>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.LB: 3>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.STW: 4>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.STS: 5>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.STB: 6>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.CAS: 7>: <class 'ducky.cpu.instructions.EncodingA'>, <DuckyOpcodes.LA: 8>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.LI: 9>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.LIU: 10>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.MOV: 11>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.SWP: 12>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.INT: 13>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.RETINT: 14>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.CALL: 15>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.RET: 16>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.CLI: 17>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.STI: 18>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.RST: 19>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.HLT: 20>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.IDLE: 21>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.LPM: 22>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.IPI: 23>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.PUSH: 24>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.POP: 25>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.INC: 26>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.DEC: 27>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.ADD: 28>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.SUB: 29>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.MUL: 30>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.DIV: 31>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.UDIV: 32>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.MOD: 33>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.AND: 34>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.OR: 35>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.XOR: 36>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.NOT: 37>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.SHIFTL: 38>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.SHIFTR: 39>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.OUTW: 40>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.OUTS: 41>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.OUTB: 42>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.INW: 43>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.INS: 44>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.INB: 45>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.J: 46>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.CMP: 47>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.CMPU: 48>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.SET: 49>: <class 'ducky.cpu.instructions.EncodingC'>, <DuckyOpcodes.BRANCH: 50>: <class 'ducky.cpu.instructions.EncodingC'>, <DuckyOpcodes.CTR: 60>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.CTW: 61>: <class 'ducky.cpu.instructions.EncodingR'>, <DuckyOpcodes.FPTC: 62>: <class 'ducky.cpu.instructions.EncodingI'>, <DuckyOpcodes.SIS: 63>: <class 'ducky.cpu.instructions.EncodingI'>}¶
-
opcodes¶ alias of
DuckyOpcodes
-
-
class
ducky.cpu.instructions.DuckyOpcodes[source]¶ Bases:
enum.IntEnum-
ADD= <DuckyOpcodes.ADD: 28>¶
-
AND= <DuckyOpcodes.AND: 34>¶
-
BRANCH= <DuckyOpcodes.BRANCH: 50>¶
-
CALL= <DuckyOpcodes.CALL: 15>¶
-
CAS= <DuckyOpcodes.CAS: 7>¶
-
CLI= <DuckyOpcodes.CLI: 17>¶
-
CMP= <DuckyOpcodes.CMP: 47>¶
-
CMPU= <DuckyOpcodes.CMPU: 48>¶
-
CTR= <DuckyOpcodes.CTR: 60>¶
-
CTW= <DuckyOpcodes.CTW: 61>¶
-
DEC= <DuckyOpcodes.DEC: 27>¶
-
DIV= <DuckyOpcodes.DIV: 31>¶
-
FPTC= <DuckyOpcodes.FPTC: 62>¶
-
HLT= <DuckyOpcodes.HLT: 20>¶
-
IDLE= <DuckyOpcodes.IDLE: 21>¶
-
INB= <DuckyOpcodes.INB: 45>¶
-
INC= <DuckyOpcodes.INC: 26>¶
-
INS= <DuckyOpcodes.INS: 44>¶
-
INT= <DuckyOpcodes.INT: 13>¶
-
INW= <DuckyOpcodes.INW: 43>¶
-
IPI= <DuckyOpcodes.IPI: 23>¶
-
J= <DuckyOpcodes.J: 46>¶
-
LA= <DuckyOpcodes.LA: 8>¶
-
LB= <DuckyOpcodes.LB: 3>¶
-
LI= <DuckyOpcodes.LI: 9>¶
-
LIU= <DuckyOpcodes.LIU: 10>¶
-
LPM= <DuckyOpcodes.LPM: 22>¶
-
LS= <DuckyOpcodes.LS: 2>¶
-
LW= <DuckyOpcodes.LW: 1>¶
-
MOD= <DuckyOpcodes.MOD: 33>¶
-
MOV= <DuckyOpcodes.MOV: 11>¶
-
MUL= <DuckyOpcodes.MUL: 30>¶
-
NOP= <DuckyOpcodes.NOP: 0>¶
-
NOT= <DuckyOpcodes.NOT: 37>¶
-
OR= <DuckyOpcodes.OR: 35>¶
-
OUTB= <DuckyOpcodes.OUTB: 42>¶
-
OUTS= <DuckyOpcodes.OUTS: 41>¶
-
OUTW= <DuckyOpcodes.OUTW: 40>¶
-
POP= <DuckyOpcodes.POP: 25>¶
-
PUSH= <DuckyOpcodes.PUSH: 24>¶
-
RET= <DuckyOpcodes.RET: 16>¶
-
RETINT= <DuckyOpcodes.RETINT: 14>¶
-
RST= <DuckyOpcodes.RST: 19>¶
-
SET= <DuckyOpcodes.SET: 49>¶
-
SHIFTL= <DuckyOpcodes.SHIFTL: 38>¶
-
SHIFTR= <DuckyOpcodes.SHIFTR: 39>¶
-
SIS= <DuckyOpcodes.SIS: 63>¶
-
STB= <DuckyOpcodes.STB: 6>¶
-
STI= <DuckyOpcodes.STI: 18>¶
-
STS= <DuckyOpcodes.STS: 5>¶
-
STW= <DuckyOpcodes.STW: 4>¶
-
SUB= <DuckyOpcodes.SUB: 29>¶
-
SWP= <DuckyOpcodes.SWP: 12>¶
-
UDIV= <DuckyOpcodes.UDIV: 32>¶
-
XOR= <DuckyOpcodes.XOR: 36>¶
-
-
ducky.cpu.instructions.ENCODE(logger, buffer, inst, field, size, value, raise_on_large_value=False)[source]¶
-
class
ducky.cpu.instructions.EncodingA[source]¶ Bases:
_ctypes.Structure-
opcode¶ Structure/Union member
-
reg1¶ Structure/Union member
-
reg2¶ Structure/Union member
-
reg3¶ Structure/Union member
-
-
class
ducky.cpu.instructions.EncodingC[source]¶ Bases:
_ctypes.Structure-
flag¶ Structure/Union member
-
immediate¶ Structure/Union member
-
immediate_flag¶ Structure/Union member
-
opcode¶ Structure/Union member
-
reg¶ Structure/Union member
-
value¶ Structure/Union member
-
-
class
ducky.cpu.instructions.EncodingI[source]¶ Bases:
_ctypes.Structure-
immediate¶ Structure/Union member
-
immediate_flag¶ Structure/Union member
-
opcode¶ Structure/Union member
-
reg¶ Structure/Union member
-
-
class
ducky.cpu.instructions.EncodingR[source]¶ Bases:
_ctypes.Structure-
immediate¶ Structure/Union member
-
immediate_flag¶ Structure/Union member
-
opcode¶ Structure/Union member
-
reg1¶ Structure/Union member
-
reg2¶ Structure/Union member
-
-
class
ducky.cpu.instructions.FPTC(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'fptc'¶
-
opcode= <DuckyOpcodes.FPTC: 62>¶
-
-
class
ducky.cpu.instructions.HLT(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_RI-
mnemonic= 'hlt'¶
-
opcode= <DuckyOpcodes.HLT: 20>¶
-
-
class
ducky.cpu.instructions.IDLE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'idle'¶
-
opcode= <DuckyOpcodes.IDLE: 21>¶
-
-
class
ducky.cpu.instructions.INB(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._IN-
mnemonic= 'inb'¶
-
opcode= <DuckyOpcodes.INB: 45>¶
-
-
class
ducky.cpu.instructions.INC(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R-
mnemonic= 'inc'¶
-
opcode= <DuckyOpcodes.INC: 26>¶
-
-
class
ducky.cpu.instructions.INS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._IN-
mnemonic= 'ins'¶
-
opcode= <DuckyOpcodes.INS: 44>¶
-
-
class
ducky.cpu.instructions.INT(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_RI-
mnemonic= 'int'¶
-
opcode= <DuckyOpcodes.INT: 13>¶
-
-
class
ducky.cpu.instructions.INW(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._IN-
mnemonic= 'inw'¶
-
opcode= <DuckyOpcodes.INW: 43>¶
-
-
class
ducky.cpu.instructions.IPI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R_RI-
mnemonic= 'ipi'¶
-
opcode= <DuckyOpcodes.IPI: 23>¶
-
-
class
ducky.cpu.instructions.InstructionSet[source]¶ Bases:
object-
instruction_set_id= None¶
-
instructions= []¶
-
opcodes= None¶
-
-
class
ducky.cpu.instructions.J(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._JUMP-
mnemonic= 'j'¶
-
opcode= <DuckyOpcodes.J: 46>¶
-
-
class
ducky.cpu.instructions.LA(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD_IMM-
mnemonic= 'la'¶
-
opcode= <DuckyOpcodes.LA: 8>¶
-
relative_address= True¶
-
-
class
ducky.cpu.instructions.LB(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD-
mnemonic= 'lb'¶
-
opcode= <DuckyOpcodes.LB: 3>¶
-
-
class
ducky.cpu.instructions.LI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD_IMM-
mnemonic= 'li'¶
-
opcode= <DuckyOpcodes.LI: 9>¶
-
-
class
ducky.cpu.instructions.LIU(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD_IMM-
mnemonic= 'liu'¶
-
opcode= <DuckyOpcodes.LIU: 10>¶
-
-
class
ducky.cpu.instructions.LPM(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'lpm'¶
-
opcode= <DuckyOpcodes.LPM: 22>¶
-
-
class
ducky.cpu.instructions.LS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD-
mnemonic= 'ls'¶
-
opcode= <DuckyOpcodes.LS: 2>¶
-
-
class
ducky.cpu.instructions.LW(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._LOAD-
mnemonic= 'lw'¶
-
opcode= <DuckyOpcodes.LW: 1>¶
-
-
class
ducky.cpu.instructions.MOD(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'mod'¶
-
opcode= <DuckyOpcodes.MOD: 33>¶
-
-
class
ducky.cpu.instructions.MOV(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R_R-
mnemonic= 'mov'¶
-
opcode= <DuckyOpcodes.MOV: 11>¶
-
-
class
ducky.cpu.instructions.MUL(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'mul'¶
-
opcode= <DuckyOpcodes.MUL: 30>¶
-
-
class
ducky.cpu.instructions.NOP(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'nop'¶
-
opcode= <DuckyOpcodes.NOP: 0>¶
-
-
class
ducky.cpu.instructions.NOT(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R-
mnemonic= 'not'¶
-
opcode= <DuckyOpcodes.NOT: 37>¶
-
-
class
ducky.cpu.instructions.OR(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BITOP-
mnemonic= 'or'¶
-
opcode= <DuckyOpcodes.OR: 35>¶
-
-
class
ducky.cpu.instructions.OUTB(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._OUT-
mnemonic= 'outb'¶
-
opcode= <DuckyOpcodes.OUTB: 42>¶
-
-
class
ducky.cpu.instructions.OUTS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._OUT-
mnemonic= 'outs'¶
-
opcode= <DuckyOpcodes.OUTS: 41>¶
-
-
class
ducky.cpu.instructions.OUTW(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._OUT-
mnemonic= 'outw'¶
-
opcode= <DuckyOpcodes.OUTW: 40>¶
-
-
class
ducky.cpu.instructions.POP(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R-
mnemonic= 'pop'¶
-
opcode= <DuckyOpcodes.POP: 25>¶
-
-
class
ducky.cpu.instructions.PUSH(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_RI-
mnemonic= 'push'¶
-
opcode= <DuckyOpcodes.PUSH: 24>¶
-
-
class
ducky.cpu.instructions.RET(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'ret'¶
-
opcode= <DuckyOpcodes.RET: 16>¶
-
-
class
ducky.cpu.instructions.RETINT(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'retint'¶
-
opcode= <DuckyOpcodes.RETINT: 14>¶
-
-
class
ducky.cpu.instructions.RST(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'rst'¶
-
opcode= <DuckyOpcodes.RST: 19>¶
-
-
class
ducky.cpu.instructions.SETE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'sete'¶
-
-
class
ducky.cpu.instructions.SETG(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setg'¶
-
-
class
ducky.cpu.instructions.SETGE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setge'¶
-
-
class
ducky.cpu.instructions.SETL(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setl'¶
-
-
class
ducky.cpu.instructions.SETLE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setle'¶
-
-
class
ducky.cpu.instructions.SETNE(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setne'¶
-
-
class
ducky.cpu.instructions.SETNO(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setno'¶
-
-
class
ducky.cpu.instructions.SETNS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setns'¶
-
-
class
ducky.cpu.instructions.SETNZ(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setnz'¶
-
-
class
ducky.cpu.instructions.SETO(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'seto'¶
-
-
class
ducky.cpu.instructions.SETS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'sets'¶
-
-
class
ducky.cpu.instructions.SETZ(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._SET-
mnemonic= 'setz'¶
-
-
class
ducky.cpu.instructions.SHIFTL(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BITOP-
mnemonic= 'shiftl'¶
-
opcode= <DuckyOpcodes.SHIFTL: 38>¶
-
-
class
ducky.cpu.instructions.SHIFTR(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BITOP-
mnemonic= 'shiftr'¶
-
opcode= <DuckyOpcodes.SHIFTR: 39>¶
-
-
class
ducky.cpu.instructions.SIS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_RI-
mnemonic= 'sis'¶
-
opcode= <DuckyOpcodes.SIS: 63>¶
-
-
class
ducky.cpu.instructions.STB(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._STORE-
mnemonic= 'stb'¶
-
opcode= <DuckyOpcodes.STB: 6>¶
-
-
class
ducky.cpu.instructions.STI(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor-
mnemonic= 'sti'¶
-
opcode= <DuckyOpcodes.STI: 18>¶
-
-
class
ducky.cpu.instructions.STS(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._STORE-
mnemonic= 'sts'¶
-
opcode= <DuckyOpcodes.STS: 5>¶
-
-
class
ducky.cpu.instructions.STW(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._STORE-
mnemonic= 'stw'¶
-
opcode= <DuckyOpcodes.STW: 4>¶
-
-
class
ducky.cpu.instructions.SUB(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'sub'¶
-
opcode= <DuckyOpcodes.SUB: 29>¶
-
-
class
ducky.cpu.instructions.SWP(instruction_set)[source]¶ Bases:
ducky.cpu.instructions.Descriptor_R_R-
mnemonic= 'swp'¶
-
opcode= <DuckyOpcodes.SWP: 12>¶
-
-
class
ducky.cpu.instructions.UDIV(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BINOP-
mnemonic= 'udiv'¶
-
opcode= <DuckyOpcodes.UDIV: 32>¶
-
-
class
ducky.cpu.instructions.XOR(instruction_set)[source]¶ Bases:
ducky.cpu.instructions._BITOP-
mnemonic= 'xor'¶
-
opcode= <DuckyOpcodes.XOR: 36>¶
-
-
ducky.cpu.instructions.update_arith_flags(core, reg)[source]¶ Set relevant arithmetic flags according to content of registers. Flags are set to zero at the beginning, then content of each register is examined, and
SandZflags are set.Eflag is not touched,Oflag is set to zero.Parameters: reg (u32_t) – register