Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
        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;
            }
        }