Пример #1
0
        void Compare(Register_t a, uint16_t b)
        {
            byte[] opA = registers.Read(a);
            byte[] opB = b.ToBinary();

            alu.Compare(opA, opB);

            ALUCopyCompareFlags();
        }
Пример #2
0
        void ALUOperation(Register_t a, uint16_t b, ALU.ALUOperation op)
        {
            byte[] opA = registers.Read(a);
            byte[] opB = b.ToBinary();
            bool   overflow;

            byte[] result = op(opA, opB, out overflow);
            registers.Write(a, result);
            ALUCopyFlags();
        }
Пример #3
0
        public byte[] ToBinary()
        {
            List <byte> bytes = new List <byte>();

            bytes.AddRange(BitConverter.GetBytes((UInt16)opcode));
            bytes.AddRange(BitConverter.GetBytes((UInt16)flags));
            bytes.AddRange(operandA.ToBinary());
            bytes.AddRange(operandB.ToBinary());

            return(bytes.ToArray());
        }