예제 #1
0
            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;
                }
            }
예제 #2
0
            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);
                }
            }
예제 #3
0
 // R
 public RegisterOperand(FcRegister register)
 {
     this.register = register;
 }