本文整理汇总了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);
}
示例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);
}
示例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);
}
示例4: Set
public override IState Set(IState prev, ushort value)
{
return prev.Set((ushort)(prev.Get(_reg) + _offset), value);
}
示例5: Get
public override ushort Get(IState state)
{
return state.Get(_addr);
}
示例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;
}