本文整理汇总了C#中EngineWarrior.GetPSpaceValue方法的典型用法代码示例。如果您正苦于以下问题:C# EngineWarrior.GetPSpaceValue方法的具体用法?C# EngineWarrior.GetPSpaceValue怎么用?C# EngineWarrior.GetPSpaceValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EngineWarrior
的用法示例。
在下文中一共展示了EngineWarrior.GetPSpaceValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LDP_AB_AiAi
public void LDP_AB_AiAi(int ip, EngineWarrior warrior)
{
int reg_IR_ValueCpyA = ValuesA[ip];
int reg_IR_ValueCpyB = ValuesB[ip];
int reg_AdrA;
int reg_AdrB;
int reg_AA_Value;
int reg_direct;
int reg_psAddress;
reg_direct = mod(reg_IR_ValueCpyA + ip);
reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
reg_AA_Value = ValuesA[reg_AdrA];
reg_direct = mod(reg_IR_ValueCpyB + ip);
reg_AdrB = mod(reg_direct + ValuesA[reg_direct]);
reg_psAddress = Instruction.Mod(reg_AA_Value, rules.PSpaceSize);
ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
ip++;
warrior.Tasks.Enqueue(mod(ip));
}
示例2: LDP_X_ImIm
public void LDP_X_ImIm(int ip, EngineWarrior warrior)
{
int reg_IR_ValueA;
int reg_IR_ValueB = ValuesB[ip];
int reg_AdrB;
int reg_psAddress;
reg_IR_ValueA = reg_IR_ValueB;
reg_AdrB = ip;
reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
ip++;
warrior.Tasks.Enqueue(mod(ip));
}
示例3: LDP_X_ImBp
public void LDP_X_ImBp(int ip, EngineWarrior warrior)
{
int reg_IR_ValueA;
int reg_IR_ValueB = ValuesB[ip];
int reg_IR_ValueCpyB = ValuesB[ip];
int reg_AdrB;
int reg_direct;
int reg_psAddress;
reg_IR_ValueA = reg_IR_ValueB;
reg_direct = mod(reg_IR_ValueCpyB + ip);
reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
inc(ref ValuesB[reg_direct]);
reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
ip++;
warrior.Tasks.Enqueue(mod(ip));
}
示例4: LDP_X_BmIm
public void LDP_X_BmIm(int ip, EngineWarrior warrior)
{
int reg_IR_ValueA;
int reg_IR_ValueCpyA = ValuesA[ip];
int reg_AdrA;
int reg_AdrB;
int reg_direct;
int reg_psAddress;
reg_direct = mod(reg_IR_ValueCpyA + ip);
reg_AdrA = mod(reg_direct + dec(ref ValuesB[reg_direct]));
reg_IR_ValueA = ValuesB[reg_AdrA];
reg_AdrB = ip;
reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
ip++;
warrior.Tasks.Enqueue(mod(ip));
}
示例5: ExecuteInstruction
//.........这里部分代码省略.........
case Modifier.X:
this[reg.AdrB, Column.B] = reg.AA_Value;
this[reg.AdrB, Column.A] = reg.IR.ValueA;
break;
case Modifier.BA:
this[reg.AdrB, Column.A] = reg.IR.ValueA;
break;
case Modifier.I:
BeforeRead(reg.AdrA, Column.All);
BeforeWrite(reg.AdrB, Column.All);
core[reg.AdrB].OriginalInstruction = core[reg.AdrA].OriginalInstruction;
core[reg.AdrB].OriginalOwner = core[reg.AdrA].OriginalOwner;
core[reg.AdrB].Operation = core[reg.AdrA].Operation;
core[reg.AdrB].Modifier = core[reg.AdrA].Modifier;
core[reg.AdrB].ModeA = core[reg.AdrA].ModeA;
core[reg.AdrB].ModeB = core[reg.AdrA].ModeB;
core[reg.AdrB].ValueA = reg.AA_Value;
core[reg.AdrB].ValueB = reg.IR.ValueA;
AfterWrite(reg.AdrB, Column.All);
break;
}
reg.ip++;
break;
#endregion
#region LDP
case Operation.LDP:
switch (reg.IR.Modifier)
{
case Modifier.A:
psAddress = Instruction.Mod(reg.AA_Value, rules.PSpaceSize);
this[reg.AdrB, Column.A] = warrior.GetPSpaceValue(psAddress);
break;
case Modifier.F:
case Modifier.B:
case Modifier.X:
case Modifier.I:
psAddress = Instruction.Mod(reg.IR.ValueA, rules.PSpaceSize);
this[reg.AdrB, Column.B] = warrior.GetPSpaceValue(psAddress);
break;
case Modifier.AB:
psAddress = Instruction.Mod(reg.AA_Value, rules.PSpaceSize);
this[reg.AdrB, Column.B] = warrior.GetPSpaceValue(psAddress);
break;
case Modifier.BA:
psAddress = Instruction.Mod(reg.IR.ValueA, rules.PSpaceSize);
this[reg.AdrB, Column.A] = warrior.GetPSpaceValue(psAddress);
break;
}
reg.ip++;
break;
#endregion
#region STP
case Operation.STP:
switch (reg.IR.Modifier)
{
case Modifier.A:
psAddress = Instruction.Mod(reg.AB_Value, rules.PSpaceSize);
BeforeWritePSpace(psAddress);
warrior.SetPSpaceValue(psAddress, reg.AA_Value);
break;