Exemplo n.º 1
0
        public static LineSpan RenderAsmLine(
            object position,
            Program program,
            IProcessorArchitecture arch,
            MachineInstruction instr,
            MachineInstructionRendererOptions options)
        {
            var line = new List <TextSpan>();
            var addr = instr.Address;

            line.Add(new AddressSpan(addr.ToString() + " ", addr, "link"));
            var rdr   = program.CreateImageReader(arch, instr.Address);
            var bytes = arch.RenderInstructionOpcode(instr, rdr);

            line.Add(new InstructionTextSpan(instr, bytes, "dasm-bytes"));
            var dfmt = new DisassemblyFormatter(program, arch, instr, line);

            instr.Render(dfmt, options);
            dfmt.NewLine();
            return(new LineSpan(position, line.ToArray()));
        }