private static Word GetEffectiveAddress(UInt16 xR2Field, CpuRegisterSet registerSet, Memory memory) { // プログラムカウンタの指すアドレスより adr を取得します。 Word adr = Fetcher.Fetch(registerSet.PR, memory); // x/r2 フィールドの値よりオフセット x の値を取得し、実効アドレス adr +L x を計算します。 Word x = GetAddressOffset(xR2Field, registerSet); Word effectiveAddress = Alu.AddLogical(adr, x); return(effectiveAddress); }
/// <summary> /// レジスタの値を 1 減らします。 /// </summary> internal void Decrement() { Value = Alu.SubtractLogical(Value, Word.One); }
/// <summary> /// レジスタの値に 1 を加えます。 /// </summary> internal void Increment() { Value = Alu.AddLogical(Value, Word.One); }