Лабораторная работа 4
ИЗУЧЕНИЕ ПРИНЦИПОВ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ
УСТРОЙСТВ. СТРУКТУРА АЛУ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ С ФИКСИРО-
ВАННОЙ ЗАПЯТОЙ
Ц е л ь р а б о т ы: Изучение принципов построения и
функционирования АЛУ для деления чисел с фиксированной
запятой.
В в е д е н и е
Деление в ЭВМ обычно сводится к выполнению последователь-
ности вычитаний делителя сначала из делимого, а затем из образу-
ющихся в процессе деления частичных остатков и сдвига частичных
остатков.
Алгоритм деления аналогичен алгоритму деления при ручном
счете. Рассмотрим особенности деления на примере деления целых
чисел.
Пусть Z=X/Y где X-делимое, представленное обычно двойным
словом (2n-1 цифровых разрядов), Y-делитель и Z-частное, предс-
тавленное словами, содержащими n-1 цифровых разрядов.
Так как частное Z-слово, размещаемое в n-разрядном регист-
ре, то должно иметь место неравество
n-1 n-1
|Z|<2 . Это возможно при условии (|Х |*2 - |Y|)<0
Поэтому перед выполнением операций деления производится так
называемое "пробное" вычитание: из делимого X вычитают делитель
Y, сдвинутый на (n-1) разрядов влево, а при неподвижном делителе
сдвигается делимое на один разряд влево.
Если результат "пробного" вычитания больше 0, то
n-1
|Z|>=2 и деление невозможно, если меньше 0, то можно
выполнить деление.
Реализовать деление можно двумя основными способами:
1.Деление с неподвижным делимым и сдвигаемым вправо делите-
лем.
2.Деление с неподвижным делителем и сдвигаемым влево дели-
мым.
Второй способ широко используется в арифметико-логических
устройствах.
В этом случае возможно два алгоритма:
- алгоритм деления с неподвижным делителем и восстановлени-
ем остатка,
- алгоритм деления с неподвижным делителем без восстановле-
ния остатка. Последний алгоритм используется наиболее часто
и состоит
из следующих этапов:
1.Берутся модули от делимого и делителя.
2.Исходное значение частичного остатка полагается равным
старшим разрядам делимого.
3.Частичный остаток удваивается путем сдвига на один разряд
влево, при этом в освобождающийся при сдвиге младший разряд час-
тичного остатка заносится очередная цифра делимого.
4.Из сдвинутого частичного остатка вычитается делитель, ес-
ли остаток положителен ,или к сдвинутому частичному остатку при-
бавляется делитель, если остаток отрицателен.
5.Очередная цифра модуля частного равна 1, если результат
вычитания положителен, и 0, если отрицателен.
6.Пункты 3-5 последовательно выполняются для получения всех
цифр модуля частного.
7.Знак частного-"плюс", если знаки делимого и делителя оди-
наковы, и "минус" в противном случае. Деление без восстановления
остатка всегда требует для получения одной цифры частного только
сложения или вычитания и сдвига частичного остатка . После за-
вершения всех циклов деления выдается результат, при этом если
остаток отрицателен, то он восстанавливается путем подсуммирова-
ния Y.
Структура АЛУ для выполнения деления приведена на рис.3.
В состав АЛУ входят: входной регистр PrY (хранит дели-
тель-неподвижный); многофункциональный регистр PrX, который яв-
ляется входным регистром сумматора, входным регистром АЛУ, хра-
нит первоначальное делимое, а затем частичные остатки, а также
используется при их сдвиге; сумматор PrCM, используемый для
сдвига частичных остатков вправо; счетчик циклов СчЦ.
В начальный момент с шины данных делимое и делитель посту-
пают в соответствующие им регистры PrX и PrY. Затем из делимого
в PrX вычитается делитель PrY (при этом начальное значение час-
тичного остатка равно делимому); результат пересылается в PrCm,
а из PrCm -в PrX. Таким образом остаток получает новое значение,
а счетчик циклов сбрасывается в 0. На этом заканчивается уста-
новка исходного состояния.
По знаку остатка в PrX определяется очередная цифра частно-
го PrZ, если PrX>=0, то PrZ [СчЦ]:=1, иначе - PrZ[СчЦ]:=0. В
PrCm поступает сдвинутый на разряд влево PrX (остаток удваивает-
ся), затем содержимое PrCm пересылается в PrX.
Выполняется вычитание (прибавление) делителя. Из сумматора
разность (сумма) поступает в PrCm и пересылается в PrX. На этом
шаге заканчиваеся вычисление нового остатка.
Содержимое счетчика циклов увеличивается на единицу. Если
СчЦ=n-1, то вычисления заканчиваются, в противном случае - пов-
торяются.
В ы п о л н е н и е
л а б о р а т о р н о й р а б о т ы
Структура АЛУ для деления чисел с фиксированной запятой и
алгоритм его функционирования моделируется с помощью программы,
реализованной на языке Турбо-Паскаль-7.
Работа с программой осу7843<ЙЕ
Текущая страница: 1
|