Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 /// <summary>
 /// レジスタの値を 1 減らします。
 /// </summary>
 internal void Decrement()
 {
     Value = Alu.SubtractLogical(Value, Word.One);
 }
Esempio n. 3
0
 /// <summary>
 /// レジスタの値に 1 を加えます。
 /// </summary>
 internal void Increment()
 {
     Value = Alu.AddLogical(Value, Word.One);
 }