void Compare(Register_t a, uint16_t b) { byte[] opA = registers.Read(a); byte[] opB = b.ToBinary(); alu.Compare(opA, opB); ALUCopyCompareFlags(); }
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(); }
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()); }