Читайте также:
|
|
Операции умножения и деления чисел, по сравнению с операциями сложения и вычитания существенно сложнее. Поэтому для них разработано очень много алгоритмов, отличающихся по критериям сложности реализации и быстроты выполнения. Отметим только основные принципы их выполнения. Прежде всего, заметим, что при реализации операций и умножения и деления используются как комбинационные схемы обработки (выполняющие операцию за один тактовый интервал), так и накапливающие схемы обработки (выполняющие операцию за несколько тактовых интервалов). Комбинационные схемы более быстродействующие, но накапливающие более просты.
Принципы умножения чисел сводятся к последовательности операций сложения и сдвига, а принципы деления – к последовательности операций вычитания и сдвига.
Перед осуществлением собственно умножения чисел всегда выполняются две предварительные операции:
1. Анализ сомножителей на равенство 0. При равенстве 0 хотя бы одного из сомножителей, умножение как таковое не производится, а результату (произведению) автоматически присваивается нулевое значение.
2. Если ни один из сомножителей не равен 0, определяется знак произведения, как логическая функция неравнозначности знаковых разрядов сомножителей (Sпр= S1 S2).
Перед осуществлением собственно деления чисел всегда выполняются предварительно четыре операции.
1. Анализ делителя и делимого на 0. При делителе = 0, процесс прекращается, и процессор уходит на прерывание, сообщая об этом пользователю. Если равно 0 делимое, процесс также прекращается, и в регистр результата сразу записываются нули.
2. Анализ на необходимость выполнения деления, т.е. выяснение, не меньше ли делимое делителя. Для этого производится предварительная операция вычитание делителя из делимого, выровненных по младшему разряду. Если при этом получается отрицательный результат, то делитель больше делимого и, поскольку в процессоре осуществляется только целочисленное деление, в регистр частного сразу записывается 0. Затем восстанавливается содержимое регистра делимого, путем сложения этого отрицательного результата с содержимым аккумулятора, где хранилось делимое, и это восстановленное значение делимого рассматривается как остаток.
3. Анализ на возможность достоверного деления заданных операндов, так как при слишком малом делителе результат может выйти за пределы разрядной сетки, т.е. произойдет переполнение разрядной сетки результата. Для такого анализа производится предварительная операция вычитания делителя из делимого, выровненных по старшим единичным разрядам. Если при этом получается положительный результат, то частное не войдет в разрядную сетку и процессор уйдет на прерывание.
4. Определяется знак частного, как функции неравнозначности знаковых разрядов делимого и делителя.
При осуществлении операций умножения вещественных чисел, порядки сомножителей суммируются, а мантиссы перемножаются. Произведение нормализуется и ему присваивается знак плюс, если сомножители имеют одинаковые знаки, и знак минус, если знаки разные. Если мантисса множимого или множителя равна нулю, то произведению присваивается значение 0 без выполнения умножения мантисс.
При делении вещественных чисел мантисса частного равна частному от деления мантиссы делимого на мантиссу делителя, а порядок частного – разности порядков делимого и делителя. Частное нормализуется, и ему присваивается знак плюс, если делимое и делитель имеют одинаковые знаки, и знак минус, если знаки разные. Если делимое равно 0, то в частное записывается 0 без выполнения деления. Если делитель равен 0, то деление не производится и формируется сигнал прерывания.
Дата добавления: 2015-10-26; просмотров: 167 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
АЛГОРИТМЫ СЛ-Я И В-Я ВЕЩЕСТВЕННЫХ ЧИСЕЛ | | | НАЗНАЧЕНИЕ, ОПРЕДЕЛЕНИЯ И ХАРАКТЕРИСТИКИ СИСТЕМ ПРЕРЫВАНИЯ КОМПЬЮТЕРОВ |