@Override
    public int hashCode() {
        int result = (regDst ? 1 : 0);
        result = 31 * result + (regWrite ? 1 : 0);
        result = 31 * result + (aluSrcA ? 1 : 0);
        result = 31 * result + (memRead ? 1 : 0);
        result = 31 * result + (memWrite ? 1 : 0);
        result = 31 * result + (memtoReg ? 1 : 0);
        result = 31 * result + (iOrD ? 1 : 0);
        result = 31 * result + (irWrite ? 1 : 0);
        result = 31 * result + (pcWrite ? 1 : 0);
        result = 31 * result + aluOp;
        result = 31 * result + aluSrcB;
        result = 31 * result + pcSource;
        return result;
    }