示例#1
0
 private void Test()
 {
     freg = new FlagRegister("freg", PrimitiveType.Word32);
     reg  = new Identifier("reg", PrimitiveType.Word32, new RegisterStorage("reg", 1, 0, PrimitiveType.Word32));
     SCZO = new Identifier("SCZO", PrimitiveType.Byte, new FlagGroupStorage(freg, 0xF, "SCZO", PrimitiveType.Byte));
     var traces = new RtlTraceBuilder
     {
         {
             new RtlTrace(0x1000)
             {
                 (m) => {
                     m.Assign(reg, m.Word32(0));
                     m.Assign(SCZO, m.Cond(reg));
                 },
                 (m) => {
                     m.Assign(m.Load(PrimitiveType.Word32, m.Word32(0x1234)), reg);
                 },
                 (m) => {
                     m.Return(0, 0);
                 }
             }
         },
         {
             new RtlTrace(0x1010)
             {
                 (m) => {
                     m.Assign(reg, m.Word32(1));
                 },
                 (m) => {
                     m.Goto(Address.Ptr32(0x1004));
                 }
             }
         },
     };
 }
示例#2
0
		public FakeArchitecture()
		{
            this.rewriters = new RtlTraceBuilder();
		}
 private void Test()
 {
     reg = new Identifier("reg", PrimitiveType.Word32, new RegisterStorage("reg", 1, PrimitiveType.Word32));
     SCZO = new Identifier("SCZO", PrimitiveType.Byte, new FlagGroupStorage(0xF, "SCZO", PrimitiveType.Byte));
     var traces = new RtlTraceBuilder
     {
         { 
             new RtlTrace(0x1000)
             {
                 (m) => {
                     m.Assign(reg, m.Word32(0));
                     m.Assign(SCZO, m.Cond(reg));
                 },
                 (m) => {
                     m.Assign(m.Load(PrimitiveType.Word32, m.Word32(0x1234)), reg);
                 },
                 (m) => {
                     m.Return(0, 0);
                 }
             }
         },
         {
             new RtlTrace(0x1010)
             {
                 (m) => {
                     m.Assign(reg, m.Word32(1));
                 },
                 (m) => {
                     m.Goto(Address.Ptr32(0x1004));
                 }
             }
         },
     };
 }