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


C# IState.Get方法代码示例

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


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

示例1: Apply

 public override IState Apply(IState state)
 {
     var jumpTarget = A.Get(state);
     var sp = (ushort)(state.Get(Register.SP) - 1);
     var op = new Set(new Push(sp), new Reg(Register.PC));
     return op.Apply(state.Set(Register.SP, sp)).Set(Register.PC, jumpTarget);
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:7,代码来源:NonBasicOp.cs

示例2: FetchNextInstruction

 public static Op FetchNextInstruction(IState state, ref ushort pc, ref ushort sp)
 {
     var firstWord = state.Get(pc++);
     return 0 == (firstWord & 0xF) ?
         (Op)DecodeNonBasic(state, firstWord, ref pc, ref sp) :
         (Op)DecodeBasic(state, firstWord, ref pc, ref sp);
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:7,代码来源:Dcpu.cs

示例3: GetOperand

 public static Operand GetOperand(IState state, byte a, ref ushort pc, ref ushort sp)
 {
     if (0x00 <= a && a < 0x08) return new Reg((Register)a);
     if (0x08 <= a && a < 0x10) return new RegIndirect((Register)(a & 0x07));
     if (0x10 <= a && a < 0x18) return new RegIndirectOffset((Register)(a & 0x07), state.Get(pc++));
     if (0x20 <= a && a < 0x40) return new Literal((ushort)(a - 0x20));
     switch (a) {
         case 0x18: return new Pop(sp++);
         case 0x19: return new Peek(sp);
         case 0x1a: return new Push(--sp);
         case 0x1b: return new Reg(Register.SP);
         case 0x1c: return new Reg(Register.PC);
         case 0x1d: return new Reg(Register.O);
         case 0x1e: return new Address(state.Get(pc++));
         case 0x1f: return new Literal(state.Get(pc++));
     }
     throw new ArgumentException("Invalid operand " + a);
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:18,代码来源:Dcpu.cs

示例4: Set

 public override IState Set(IState prev, ushort value)
 {
     return prev.Set((ushort)(prev.Get(_reg) + _offset), value);
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:4,代码来源:Operand.cs

示例5: Get

 public override ushort Get(IState state)
 {
     return state.Get(_addr);
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:4,代码来源:Operand.cs

示例6: Apply

 public override IState Apply(IState state)
 {
     if (IsNextSkipped(A.Get(state), B.Get(state))) {
         ushort pc = state.Get(Register.PC);
         ushort sp = state.Get(Register.SP);
         Dcpu.FetchNextInstruction(state, ref pc, ref sp);
         return state.Set(Register.PC, pc);
     }
     return state;
 }
开发者ID:mmcgill,项目名称:dcpu_sharp,代码行数:10,代码来源:BasicOp.cs


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