protected override void HandleInstruction(InstructionDefinition insn, byte[] bytes) { if (insn.DefProcessorCallbackContext == null) return; var boundInsn = insn.Bind(bytes, _curIndex, _section); boundInsn.InvokeCallback(this); }
public BoundInstruction(InstructionDefinition insn, byte[] bytes, int curOffset, SectionInfo section) { _section = section; _curAbsoluteOffset = curOffset + _section.SectionOffset; this.Instruction = insn; InitializeBoundData(bytes); _boundValues['A'] = curOffset; _pcRelBranchExpr = new Expression("A+o*2"); }
protected abstract void HandleInstruction(InstructionDefinition insn, byte[] bytes);
protected override void HandleInstruction(InstructionDefinition insn, byte[] bytes) { string s; if (_section.ObjectDefLocations.TryGetValue(CurAbsoluteIndex, out s)) ASM += "\r\n" + s + "\r\n"; if (_section.LabelDefLocations.TryGetValue(CurAbsoluteIndex, out s)) ASM += s + ":\r\n"; var boundInsn = insn.Bind(bytes, _curIndex, _section); //ASM += _curIndex.ToString("0000") + " "; ASM += "\t"; ASM += boundInsn.GetText(this); //ASM += " ; " + GetBytecode(bytes); ASM += "\r\n"; ASM += GetBinary(bytes); ASM += "\r\n"; }