Ejemplo n.º 1
0
        public bool Run(bool[] A, bool[] B, bool F0, bool carryIn, out bool carryOut)
        {
            bool M0;

            bool[] M1 = new bool[23];
            bool[] M2 = new bool[8];

            // Início bit de sinal

            M0 = A1.Run(A[0], B[0], true, false, F0, carryIn, out carryOut);

            // Fim bit de sinal

            // Início mantissa fracionária

            bool[] IA23 = new bool[23];
            bool[] IB23 = new bool[23];

            for (int i = 0, aux = 1; i < 24; i++, aux++)
            {
                IA23[i] = A[aux];
                IB23[i] = B[aux];
            }

            M1 = A23.Run(IA23, IB23, true, false, F0, carryIn, out carryOut);

            // Fim mantissa fracionária

            // Início expoente polarizado

            bool[] IA8 = new bool[8];
            bool[] IB8 = new bool[8];

            for (int i = 0, aux = 25; i < 8; i++, aux++)
            {
                IA8[i] = A[aux];
                IB8[i] = B[aux];
            }

            M2 = A8.Run(IA8, IB8, true, false, F0, carryIn, out carryOut);

            // Fim expoente polarizado

            return(false);
        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            int bitsAmount = 23;

            bool[] a = Conversor.ConvertSringToBool(Conversor.ConvertDecimalTo(input_a.Text, 2), bitsAmount);
            bool[] b = Conversor.ConvertSringToBool(Conversor.ConvertDecimalTo(input_b.Text, 2), bitsAmount);
            bool[] f = Conversor.ConvertSringToBool(input_op_code.Text, 3);

            bool cO;

            bool[] res = new bool[bitsAmount];
            res = alu.Run(a, b, f[0], f[1], f[2], false, out cO);

            a_binary.Text       = Conversor.ConvertBoolToString(a);
            b_binary.Text       = Conversor.ConvertBoolToString(b);
            result_binary.Text  = Conversor.ConvertBoolToString(res);
            result_decimal.Text = Conversor.ConvertBaseToDecimal(result_binary.Text, 2);
        }
Ejemplo n.º 3
0
        public static bool[] ConvertBoolToNegativeBool(bool[] value)
        {
            if (value.Length != 23)
            {
                throw new Exception("Value given must be have a word of length 23");
            }

            bool[] valueToReturn = new bool[23];

            for (int i = 0; i < value.Length; i++)
            {
                valueToReturn[i] = !value[i];
            }

            bool[] numToSum = new bool[23];
            numToSum[0] = true;
            bool[] opCode = { false, false, true };

            bool      ca;
            ALU23bits aluAux = new ALU23bits();

            valueToReturn = aluAux.Run(valueToReturn, numToSum, opCode[0], opCode[1], opCode[2], false, out ca);
            return(valueToReturn);
        }