private void RunTest(AssemblerFragment fragment, string sExp) { Address addrBase= Address.SegPtr(0xC00, 0); X86Assembler asm = new X86Assembler(sc, new MsdosPlatform(sc, new X86ArchitectureReal()), addrBase, new List<ImageSymbol>()); fragment.Build(asm); Program lr = asm.GetImage(); var mem = lr.SegmentMap.Segments.Values.First().MemoryArea; X86Disassembler dasm = new X86Disassembler( ProcessorMode.Real, mem.CreateLeReader(mem.BaseAddress), PrimitiveType.Word16, PrimitiveType.Word16, false); StringBuilder sb = new StringBuilder(); try { foreach (var instr in dasm) { sb.AppendFormat("{0}\t{1}", instr.Address, instr); sb.AppendLine(); } Assert.AreEqual(sExp, sb.ToString()); } catch { Console.WriteLine(sb.ToString()); throw; } }
private void RunTest(AssemblerFragment fragment, string sExp) { Address addrBase= Address.SegPtr(0xC00, 0); X86Assembler asm = new X86Assembler(new IntelArchitecture(ProcessorMode.Real), addrBase, new List<EntryPoint>()); fragment.Build(asm); Program lr = asm.GetImage(); X86Disassembler dasm = new X86Disassembler( ProcessorMode.Real, lr.Image.CreateLeReader(lr.Image.BaseAddress), PrimitiveType.Word16, PrimitiveType.Word16, false); StringBuilder sb = new StringBuilder(); try { foreach (var instr in dasm) { sb.AppendFormat("{0}\t{1}", instr.Address, instr); sb.AppendLine(); } Assert.AreEqual(sExp, sb.ToString()); } catch { Console.WriteLine(sb.ToString()); throw; } }