Построение арифметико-логического устройства для выполнения операции умножения целых чисел
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
м: -3обр = 1100
Все неотрицательные числа представляются прямым кодом, а отрицательные - дополнительным или обратным. При использовании обратных кодов возникает одна неприятность, связанная с положительным и отрицательным нулем. Этого недостатка не имеют дополнительный код отрицательных чисел.
Дополнительный код получается как дополнение до числа 2n Xдоп . Т.О. чтобы получить дополнительный код числа нужно инвертировать каждый разряд числа и добавить к результату единицу.
Указанное свойство дополнительных кодов для представления отрицательных чисел позволяет заменить операцию вычитания операцией сложения, которую нам представляет сумматор.
Для преобразования отрицательного числа в дополнительном коде в прямой код достаточно выполнить обратное действие, т.е. инвертировать каждый разряд числа (и знаковый) и добавить единицу к младшему разряду. При сложении положительных чисел, представленных прямым кодом и отрицательных чисел представленных обратным кодом, может выполняться круговой перенос. При этом если возникает перенос из знакового разряда, то он добавляется к младшему разряду числа.
На практике используется прямой код для представления неотрицательных чисел, и дополнительный - для представления отрицательных. Это дает возможность получать результат в прямом коде, если он положительный, и в дополнительном, если он отрицательный.
В результате операции могут возникнуть следующие ситуации:
- Перенос из знакового разряда при отсутствии переноса в знаковый разряд (эта ситуация соответствует отрицательному переполнению разрядной сетки)
- Наличие переноса в знаковый разряд при отсутствии при отсутствии переноса в знаковый разряд(положительный перенос).
- При отсутствии общих переносов, либо при их обоих наличий, результат размещается в разрядной сетке.
Таким образом приведенная схема формирует в соответствии с алгоритмом: z=xy. Выполнение операции соответствует сложению операндов ч и н. Выполняется прием первого операнда в регистр В. Выполняется прием второго операнда в регистр А.
Второй операнд передается в РгА в коде, который соответствует выполненной операции:
1) прямой при сложении
2) инверсный при вычитании
Сумматор выполняет сложение кодов, при выполнении операции с обратным кодом оператора младшему разряду добавляется 1. Результат операции размещается в регистре сумматора. Если результат положительный, то он представляется прямым кодом, если отрицательный, то дополнительным кодом.
Помимо этого логическая схема Пр формируется признаками результатов выполнения операции
n1n2
- 0
- 1z=0
- 0z<0
11z>0
Указанные условия проверяются соответствующими логическими схемами, которые обеспечивают формирование сигналов n1 и n2 поступающих на устройство управления.
Операция умножения последовательность операций сложения и сдвига. При этом результат операции при размерности операндов числовые разряды (n-1). Размерность результата (2n-1) числовой разряд. Если операнды двоичные слова, то результат тоже. Поскольку в распоряжении имеются аппаратные средства, в виде сумматоров и цепей сдвига по разрядной сетке, то операция умножения представляется как результат последовательного анализа цифр множителя и добавления к текущему значению суммы частичных произведений с первичным нулевым значением множимого, если анализируемая цифра множителя равна единице. После этого сумму частичных произведений или множимое следует сдвинуть по разрядной сетке для выполнения очередной итерации., по сути операция умножения в трактуемом содержании соответствует умножению в столбик.
Варианты умножения.
Все компоненты имеют одинаковую размерность, соответствующую слову, обрабатываемому в АЛУ. Регистр множителя должен иметь цепи сдвига вправо. Сумматор частичных произведений должен иметь также цепи сдвига вправо. Причём, младшие разряды соединяются со старшими разрядами регистра множителя. В результате производится анализ младшей цифры множителя после чего, если равны 1, то к текущему значению суммы частичных приведений (который первоначально равен 0) добавляется содержимое регистра множимого. Если, анализируемая цифра равна 0, то операция сложения не выполняется после этого содержимое регистра множителя сдвигается вправо на один разряд и в освободившийся старший разряд регистра множителя переносится младший разряд суммы частичных произведений, в результате сдвига её вправо по разрядной сетке. Далее продолжается с анализа разряда. В результате после окончания операции в регистре множителя: младший разряд результата, а в сумматоре старшая часть разряда.
В данном варианте используется двойная размерность сумматора частичных произведений и двойная размерность регистра множимого. Как и в 1-м варианте регистр множителя имеет цепи сдвига вправо по разрядной сетке, а регистр множимого влево по разрядной сетке. Сумматор частичных произведений не оснащён цепями сдвига. Аналогично производится анализ младшего разряда множителя, и если он равен 1, то производится произведение текущей суммы и содержимого регистра множимого. После этого производится сдвиг вправо содержимого регистра множителя и сдвиг влево содержимого регистра множимого. Аналогично рассматриваются варианты со старшим разрядом.
Сумматор частичных произведений имеет цепи сдвига вл?/p>