public void Set(FcRegister registerId, uint value) { switch (registerId) { case FcRegister.A: A = (ushort)value; break; case FcRegister.B: B = (ushort)value; break; case FcRegister.BL: B = (ushort)((ushort)(B & 0xFF00) | (ushort)(value & 0x00FF)); break; case FcRegister.BH: B = (ushort)((ushort)(B & 0x00FF) | (ushort)(value & 0x00FF) << 8); break; case FcRegister.M: M = (ushort)value; break; case FcRegister.N: N = (ushort)value; break; case FcRegister.MN: M = (ushort)(value >> 16); N = (ushort)(value & 0x0000FFFF); break; case FcRegister.C: C = (ushort)value; break; case FcRegister.S: S = (ushort)value; break; case FcRegister.F: F = (ushort)value; break; default: dataRegisters[(byte)registerId] = (ushort)value; break; } }
public uint Get(FcRegister registerId) { switch (registerId) { case FcRegister.A: return(A); case FcRegister.B: return(B); case FcRegister.BL: return((ushort)(B & 0x00FF)); case FcRegister.BH: return((ushort)(B >> 8)); case FcRegister.M: return(M); case FcRegister.N: return(N); case FcRegister.MN: return(((uint)M << 16) | N); case FcRegister.C: return(C); case FcRegister.S: return(S); case FcRegister.F: return(F); default: return(dataRegisters.ContainsKey((byte)registerId) ? dataRegisters[(byte)registerId] : 0u); } }
// R public RegisterOperand(FcRegister register) { this.register = register; }