Example #1
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     base.DoRender(renderer, options);
 }
Example #2
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString("#");
     renderer.WriteString(MachineOperand.FormatValue(Constant, false, M68kDisassembler.HexStringFormat));
 }
Example #3
0
 protected override void RenderOperand(MachineOperand operand, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     if (operand is ImmediateOperand imm)
     {
         renderer.WriteChar('#');
         WriteHex(imm.Value.ToUInt16(), renderer);
         return;
     }
     base.RenderOperand(operand, renderer, options);
 }
Example #4
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     RenderMnemonic(renderer, options);
     base.RenderOperands(renderer, options);
 }
Example #5
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteFormat("{0},{1}", Register1.Name, Register2.Name);
 }
Example #6
0
        protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            string s = string.Join(",", Values.Select(w => $"0x{w:X4}"));

            renderer.WriteString(s);
        }
Example #7
0
        protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            var s = PICMemoryDescriptor.RenderDeviceConfigRegister(addr, Values[0]);

            renderer.WriteString(s);
        }
Example #8
0
        protected override void RenderOperand(MachineOperand op, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            switch (op)
            {
            case ImmediateOperand immOp:
                renderer.WriteChar('#');
                immOp.Render(renderer, options);
                return;

            case MemoryOperand memOp:
                if (memOp.mode == AddressingMode.PcRelativeDisplacement)
                {
                    uint uAddr = this.Address.ToUInt32();
                    if (memOp.Width.Size == 4)
                    {
                        uAddr &= ~3u;
                    }
                    uAddr += (uint)(memOp.disp + 4);
                    var addr = Core.Address.Ptr32(uAddr);
                    if ((options.Flags & MachineInstructionRendererFlags.ResolvePcRelativeAddress) != 0)
                    {
                        renderer.WriteChar('(');
                        renderer.WriteAddress(addr.ToString(), addr);
                        renderer.WriteChar(')');
                        renderer.AddAnnotation(op.ToString());
                    }
                    else
                    {
                        op.Render(renderer, options);
                        renderer.AddAnnotation(addr.ToString());
                    }
                    return;
                }
                goto default;

            default:
                op.Render(renderer, options);
                break;
            }
        }
Example #9
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteFormat("{0}({1})", Offset, Base);
 }
Example #10
0
 protected override void RenderOperand(MachineOperand op, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     if (op is MemoryOperand memOp && memOp.Base == Registers.pc)
     {
         var uAddr = Address.ToUInt32();
         if (memOp.Offset != null)
         {
             uAddr = (uint)(uAddr + memOp.Offset.ToInt32());
         }
         var addr = Address.Ptr32(uAddr);
         if ((options.Flags & MachineInstructionRendererFlags.ResolvePcRelativeAddress) != 0)
         {
             renderer.WriteAddress(addr.ToString(), addr);
             renderer.AddAnnotation(op.ToString());
         }
         else
         {
             op.Render(renderer, options);
             renderer.AddAnnotation(addr.ToString());
         }
         return;
     }
     op.Render(renderer, options);
 }
Example #11
0
 protected override void RenderOperand(MachineOperand operand, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     if (operand is ImmediateOperand imm)
     {
         renderer.WriteString("#$");
         imm.Render(renderer, options);
     }
     else
     {
         base.RenderOperand(operand, renderer, options);
     }
 }
Example #12
0
        protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            var syntax = ChooseSyntax(options);

            syntax.Render(this, renderer, options);
        }
Example #13
0
        public string ToString(string syntax)
        {
            var options = new MachineInstructionRendererOptions(syntax: syntax);

            return(base.ToString(options));
        }
Example #14
0
 protected override void RenderOperand(MachineOperand operand, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     switch (operand)
     {
     case ImmediateOperand imm:
         renderer.WriteChar('#');
         WriteNumber(imm.Value, renderer);
         return;
     }
     base.RenderOperand(operand, renderer, options);
 }
Example #15
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString(WRegIsDest ? ",W" : ",F");
 }
Example #16
0
 protected override void RenderOperand(MachineOperand op, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     if (op is AddressOperand && (base.InstructionClass & InstrClass.Transfer) == 0)
     {
         renderer.WriteString("#");
     }
     if (op is ImmediateOperand && Mnemonic != Mnemonics.call)
     {
         renderer.WriteString("#");
     }
     op.Render(renderer, options);
 }
Example #17
0
        protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            byte mode = TBLIncrMode.ToByte();

            renderer.WriteString(ops[mode & 3]);
        }
Example #18
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     throw new NotImplementedException();
 }
Example #19
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString($"{addr}, 0x{Values[0]:X3}");
 }
Example #20
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteMnemonic(Mnemonic.ToString());
     RenderOperands(renderer, options);
 }
Example #21
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     throw new NotImplementedException("Must be implemented by related instruction.");
 }
Example #22
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString($"{CodeTarget.ToLinear():X8}");
 }
Example #23
0
 protected override void RenderOperand(MachineOperand operand, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     base.RenderOperand(operand, renderer, options);
 }
Example #24
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString($"0x{DataTarget.Offset:X4}");
 }
Example #25
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString("(");
     renderer.WriteString(Register.Name);
     renderer.WriteString(")+");
 }
Example #26
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString($"0x{Offset:X2}{(IsAccess ? ",ACCESS" : "")}");
 }
Example #27
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteMnemonic(Condition.ToString());
 }
Example #28
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     renderer.WriteString($"{BitNo}");
 }
Example #29
0
 protected override void DoRender(MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
 {
     RenderQualifyingPredicate(renderer);
     RenderMnemonic(renderer);
     RenderOperands(renderer, options);
 }
Example #30
0
        public void Render(X86Instruction instr, MachineInstructionRenderer renderer, MachineInstructionRendererOptions options)
        {
            RenderPrefix(instr, renderer);

            var s = new StringBuilder();

            RenderMnemonic(instr, s);
            renderer.WriteMnemonic(s.ToString());

            if (instr.Operands.Length > 0)
            {
                renderer.Tab();
                RenderOperands(instr, options, renderer);
            }
        }