예제 #1
0
            public override AvrInstruction Decode(uint uInstr, Avr8Disassembler dasm)
            {
                ushort wInstr = (ushort)uInstr;
                int    br     = (((wInstr >> 7) & 8) | (wInstr & 7)) & 0xF;

                o(wInstr, dasm);
                return(new AvrInstruction
                {
                    InstructionClass = InstrClass.ConditionalTransfer,
                    Mnemonic = branches[br],
                    Operands = dasm.ops.ToArray()
                });
            }
예제 #2
0
 public override AvrInstruction Decode(uint wInstr, Avr8Disassembler dasm)
 {
     foreach (var m in mutators)
     {
         if (!m(wInstr, dasm))
         {
             return(invalid.Decode(wInstr, dasm));
         }
     }
     return(new AvrInstruction
     {
         opcode = opcode,
         InstructionClass = iclass,
         operands = dasm.ops.ToArray(),
     });
 }