当前位置: 首页>>代码示例>>C#>>正文


C# ProcedureBuilder.Local16方法代码示例

本文整理汇总了C#中Reko.UnitTests.Mocks.ProcedureBuilder.Local16方法的典型用法代码示例。如果您正苦于以下问题:C# ProcedureBuilder.Local16方法的具体用法?C# ProcedureBuilder.Local16怎么用?C# ProcedureBuilder.Local16使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Reko.UnitTests.Mocks.ProcedureBuilder的用法示例。


在下文中一共展示了ProcedureBuilder.Local16方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DpaConstantMemberPointer

        public void DpaConstantMemberPointer()
        {
            ProgramBuilder prog = new ProgramBuilder();
            ProcedureBuilder m = new ProcedureBuilder();
            Identifier ds = m.Local16("ds");
            ds.DataType = PrimitiveType.SegmentSelector;
            Identifier bx = m.Local16("bx");

            m.Assign(bx, 0x1234);
            m.Store(m.SegMemW(ds, bx), m.Int16(0x0042));
            prog.Add(m);

            RunTest(prog.BuildProgram(), "Typing/DpaConstantMemberPointer.txt");
        }
开发者ID:nemerle,项目名称:reko,代码行数:14,代码来源:DerivedPointerAnalysisTests.cs

示例2: DtbArrayAccess2

        public void DtbArrayAccess2()
        {
            ProcedureBuilder m = new ProcedureBuilder();
            Identifier ds = m.Local(PrimitiveType.SegmentSelector, "ds");
            Identifier bx = m.Local16("bx");
            Expression e = m.Array(PrimitiveType.Word32, m.Seq(ds, m.Word16(0x300)), m.IMul(bx, 8));
            e.Accept(eqb);

            TraitCollector coll = new TraitCollector(factory, store, dtb, program);
            e.Accept(coll);
            Verify("Typing/DtbArrayAccess2.txt");
        }
开发者ID:nemerle,项目名称:reko,代码行数:12,代码来源:DataTypeBuilderTests.cs

示例3: TrcoArrayAccess

 public void TrcoArrayAccess()
 {
     ProcedureBuilder m = new ProcedureBuilder();
     Identifier ds = m.Local(PrimitiveType.SegmentSelector, "ds");
     Identifier bx = m.Local16("bx");
     Expression e = m.Array(PrimitiveType.Word32, m.Seq(ds, m.Word16(0x300)), m.IMul(bx, 8));
     coll = CreateCollector();
     e.Accept(eqb);
     e.Accept(coll);
     StringWriter sb = new StringWriter();
     handler.Traits.Write(sb);
     string sExp =
         "T_1 (in ds : selector)" + nl +
         "\ttrait_primitive(selector)" + nl +
         "\ttrait_mem_array(300, 8, 0, T_7)" + nl + 
         "T_2 (in 0x0300 : word16)" + nl +
         "	trait_primitive(word16)" + nl +
         "T_3 (in SEQ(ds, 0x0300) : ptr32)" + nl +
         "	trait_primitive(ptr32)" + nl +
         "T_4 (in bx : word16)" + nl +
         "	trait_primitive(word16)" + nl +
         "	trait_primitive(ui16)" + nl +
         "T_5 (in 0x0008 : word16)" + nl +
         "	trait_primitive(word16)" + nl +
         "	trait_primitive(ui16)" + nl +
         "T_6 (in bx * 0x0008 : word16)" + nl +
         "	trait_primitive(ui16)" + nl +
         "T_7 (in SEQ(ds, 0x0300)[bx * 0x0008] : word32)" + nl +
         "	trait_primitive(word32)" + nl;
     Assert.AreEqual(sExp, sb.ToString());
 }
开发者ID:gitter-badger,项目名称:reko,代码行数:31,代码来源:TraitCollectorTests.cs

示例4: TrcoUnsignedCompare

		public void TrcoUnsignedCompare()
		{
			ProcedureBuilder m = new ProcedureBuilder();
			Identifier ds = m.Local16("ds");
			Expression e = m.Uge(ds, m.Word16(0x0800));

            coll = CreateCollector();
			e.Accept(eqb);
			e.Accept(coll);
			StringWriter sb = new StringWriter();
			handler.Traits.Write(sb);
			string exp = 
				"T_1 (in ds : word16)" + nl +
				"\ttrait_primitive(word16)" + nl +
				"\ttrait_equal(T_2)" + nl +
				"\ttrait_primitive(cups16)" + nl +
				"T_2 (in 0x0800 : word16)" + nl +
				"\ttrait_primitive(word16)" + nl +
				"\ttrait_primitive(cups16)" + nl +
				"T_3 (in ds >=u 0x0800 : bool)" + nl +
				"\ttrait_primitive(bool)" + nl;
			Assert.AreEqual(exp, sb.ToString());
		}
开发者ID:gitter-badger,项目名称:reko,代码行数:23,代码来源:TraitCollectorTests.cs

示例5: TrcoSegMem

		public void TrcoSegMem()
		{
			ProcedureBuilder m = new ProcedureBuilder();
			Identifier ds = m.Local16("ds");
			Expression e = m.SegMemW(ds, m.Word16(0xC002U));

            coll = CreateCollector();
			e.Accept(eqb);
			e.Accept(coll);
			Verify(null, "Typing/TrcoSegMem.txt");
		}
开发者ID:gitter-badger,项目名称:reko,代码行数:11,代码来源:TraitCollectorTests.cs

示例6: TrcoSegmentedDirectAddress

		public void TrcoSegmentedDirectAddress()
		{
            Program prog = CreateProgram();
			prog.TypeStore.EnsureExpressionTypeVariable(prog.TypeFactory, prog.Globals);

            ProcedureBuilder m = new ProcedureBuilder();
            Identifier ds = m.Local16("ds");
			Expression e = m.SegMem(PrimitiveType.Byte, ds, m.Int16(0x0200));

            coll = CreateCollector(prog);
			e = e.Accept(en);
			e.Accept(eqb);
			e.Accept(coll);
			Verify(null, "Typing/TrcoSegmentedDirectAddress.txt");
		}
开发者ID:gitter-badger,项目名称:reko,代码行数:15,代码来源:TraitCollectorTests.cs

示例7: TrcoSegmentedAccess

		public void TrcoSegmentedAccess()
		{
			ProcedureBuilder m = new ProcedureBuilder();
			Identifier ds = m.Local16("ds");
			Identifier bx = m.Local16("bx");
			Identifier ax = m.Local16("ax");
			Expression e = m.SegMem(PrimitiveType.Word16, ds, m.IAdd(bx, 4));

            coll = CreateCollector();
			e = e.Accept(en);
			e.Accept(eqb);
			e.Accept(coll);
			Verify(null, "Typing/TrcoSegmentedAccess.txt");
		}
开发者ID:gitter-badger,项目名称:reko,代码行数:14,代码来源:TraitCollectorTests.cs

示例8: TrcoMemberPointer

		public void TrcoMemberPointer()
		{
			ProcedureBuilder m = new ProcedureBuilder();
			Identifier ds = m.Local16("ds");
			Identifier bx = m.Local16("bx");
			Identifier ax = m.Local16("ax");
			MemberPointerSelector mps = m.MembPtrW(ds, m.IAdd(bx, 4));
			Expression e = m.Load(PrimitiveType.Byte, mps);

            coll = CreateCollector();
			e = e.Accept(en);
			e.Accept(eqb);
			e.Accept(coll);
			Assert.IsNotNull(mps.BasePointer.TypeVariable, "Base pointer should have type variable");
			Verify(null, "Typing/TrcoMemberPointer.txt");
		}
开发者ID:gitter-badger,项目名称:reko,代码行数:16,代码来源:TraitCollectorTests.cs

示例9: DtbSequenceWithSegment

        public void DtbSequenceWithSegment()
        {
            ProcedureBuilder m = new ProcedureBuilder();
            Identifier ds = m.Local16("ds");
            ds.DataType = PrimitiveType.SegmentSelector;
            m.SegStore(ds, m.Word16(0x0100), m.Seq(ds, m.Word16(0x1234)));

            ProgramBuilder prog = new ProgramBuilder();
            prog.Add(m);
            RunTest(prog.BuildProgram(), "Typing/DtbSequenceWithSegment.txt");
        }
开发者ID:melbcat,项目名称:reko,代码行数:11,代码来源:DataTypeBuilderTests.cs

示例10: DtbSignedCompare

        public void DtbSignedCompare()
        {
            ProcedureBuilder m = new ProcedureBuilder();
            Identifier p = m.Local32("p");
            Identifier ds = m.Local16("ds");
            ds.DataType = PrimitiveType.SegmentSelector;
            Identifier ds2 = m.Local16("ds2");
            ds.DataType = PrimitiveType.SegmentSelector;
            m.Assign(ds2, ds);
            m.Store(
                m.SegMem(PrimitiveType.Bool, ds, m.Word16(0x5400)),
                m.Lt(m.SegMemW(ds, m.Word16(0x5404)), m.Word16(20)));
            m.Store(m.SegMemW(ds2, m.Word16(0x5404)), m.Word16(0));

            ProgramBuilder prog = new ProgramBuilder();
            prog.Add(m);
            RunTest(prog.BuildProgram(), "Typing/DtbSignedCompare.txt");
        }
开发者ID:melbcat,项目名称:reko,代码行数:18,代码来源:DataTypeBuilderTests.cs

示例11: DtbSegmentedDirectAddress

        public void DtbSegmentedDirectAddress()
        {
            ProcedureBuilder m = new ProcedureBuilder();
            var arch = new Reko.Arch.X86.X86ArchitectureReal();
            var prog = new Program
            {
                Architecture = arch,
                Platform = new DefaultPlatform(null, arch)
            };
            store.EnsureExpressionTypeVariable(factory, prog.Globals);

            Identifier ds = m.Local16("ds");
            Expression e = m.SegMem(PrimitiveType.Byte, ds, m.Int16(0x0200));

            TraitCollector coll = new TraitCollector(factory, store, dtb, prog);
            e = e.Accept(aen);
            e.Accept(eqb);
            e.Accept(coll);
            dtb.BuildEquivalenceClassDataTypes();
            Verify("Typing/DtbSegmentedDirectAddress.txt");
        }
开发者ID:melbcat,项目名称:reko,代码行数:21,代码来源:DataTypeBuilderTests.cs

示例12: DtbSegmentedAccess

        public void DtbSegmentedAccess()
        {
            ProcedureBuilder m = new ProcedureBuilder();

            Identifier ds = m.Local16("ds");
            Identifier bx = m.Local16("bx");
            Expression e = m.SegMem(bx.DataType, ds, m.IAdd(bx, 4));
            var arch = new Reko.Arch.X86.X86ArchitectureReal();
            Program prog = new Program
            {
                Architecture = arch,
                Platform = new DefaultPlatform(null, arch),
            };
            TraitCollector trco = new TraitCollector(factory, store, dtb, prog);
            e = e.Accept(aen);
            e.Accept(eqb);
            e.Accept(trco);
            dtb.BuildEquivalenceClassDataTypes();
            Verify("Typing/DtbSegmentedAccess.txt");
        }
开发者ID:melbcat,项目名称:reko,代码行数:20,代码来源:DataTypeBuilderTests.cs


注:本文中的Reko.UnitTests.Mocks.ProcedureBuilder.Local16方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。