Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арифметика.doc
Скачиваний:
13
Добавлен:
12.11.2019
Размер:
310.78 Кб
Скачать

Алгоритм умножения чисел, представленных в прямом коде, начиная с младших разрядов, со сдвигом суммы частичных произведений вправо

  1. Берутся модули от сомножителей.

  2. Исходное значение суммы частичных произведений принимается равным нулю.

  3. Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое; если эта цифра равна 0, прибавление не производится.

  4. Производится сдвиг суммы частичных произведений вправо на 1 разряд.

  5. Пункты 3 и 4 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего

  6. Произведению присваивается знак плюс, если знаки сомножителей одинаковы; в противном случае – знак минус.

Операционный автомат и микропрограмма для умножения чисел с фиксированной запятой в прямом коде.

Пусть необходимо построить операционное устройство для выполнения умножения чисел, представленных в форме с фиксированной запятой. Исходные операнды поступают на вход устройства последовательно за два такта по шине DI(0:7) в следующем формате:

Результат должен быть выдан на шину DO(0:7) в таком же формате и сопровождаться выдачей сигнала Ready.

Тогда структурная схема ОУ будет иметь вид.

Напишем микропрограмму и построим операционный автомат умножения чисел с фиксированной запятой.

Можно предложить следующий алгоритм выполнения операции умножения чисел, представленных в форме с фиксированной запятой.

  1. Принять операнды по входной шине на регистры А и В.

  2. Присвоить счетчику циклов значение 0. Присвоить сумме промежуточных произведений значение 0.

  3. Провести анализ на равенство нулю каждого из сомножителей. Если хотя бы один из сомножителей равен нулю, то перейти к п.10.

  4. Провести анализ младшего разряда множителя. Если младший разряд множителя равен 0, то перейти к п.6.

  5. Выполнить сложение суммы промежуточных произведений и множимого.

  6. Сдвинуть множитель и сумму частичных произведений множителя вправо на один разряд. Прибавить 1 к содержимому счетчика циклов.

  7. Если содержимое счетчика циклов не рано 0, перейти к п.4.

  8. При необходимости произвести округление.

  9. Произведению присвоить знак плюс, если знаки сомножителей одинаковы, и знак минус, если знаки сомножителей разные.

  10. Выдать результат на выходную шину, сопровождая выдачу сигналом Ready/

  11. Конец.

Микропрограмма выполнения операции умножения чисел, представленных в форме с фиксированной точкой в прямом коде приведена ниже.

Микропрограмма содержит исходные данные для построения ОУ. На ее основе можно построить операционный и управляющий автоматы, а, следовательно, и все операционное устройство в целом.

Для построения управляющего автомата строится кодированная ГСА и синтез УА проводится одним из ранее рассмотренных методов.

Для построения ОА используются следующие списки:

  1. Список слов и их типов, которые были использованы при написании микропрограммы (ее описательная часть). Он имеет следующий вид.

  • РгА(0:7) – внутреннее слово с памятью;

  • РгВ(0:7) – внутреннее слово с памятью;

  • РгС(0:7) – внутреннее слово с памятью;

  • Cnt(0:2) – внутреннее слово с памятью;

  • DI(0:7) – входное слово без памяти;

  • Ready – выходное слово без памяти;

  • DO(0:7) – выходное слово без памяти.

  1. Список микроопераций.

    • y1: РгА:= DI;

    • y2: РгС := 0

    • y3: РгB:= DI;

    • y4: Cnt := 0

    • y5: РгС:= РгС + РгА(1:7);

    • y6: Cnt:=Cnt+1

    • y7: РгС:= R1(0.РгC);

    • y8: РгB(1:7):= R1(РгC(7).РгB(1:7));

    • y9: РгС:= РгС + 1

    • y10: РгС(0):= 1;

    • y11: DO := РгС;

    • y12: Ready := 1.

  1. Список логических условий.

  • x1 = РгА(1:7)=0;

  • x2 = РгB(1:7)=0;

  • x3 = РгB(7);

  • x4 = Cnt =7;

  • x5 = РгВ(1);

  • x6 = РгА(0)РгВ(0)

С труктурная схема ОА будет иметь следующий вид.

Умножение чисел, представленных в форме с фиксированной запятой в дополнительных кодах

Так как, для выполнения операции сложения целесообразнее использовать сумматор дополнительного кода, то желательно и умножение производить над числами, представленными в дополнительных кодах.

Алгоритм умножения, начиная с младших разрядов множителя, со сдвигом суммы частичных произведений и использованием дополнительного кода для представления чисел.

  1. Исходное значение суммы частичных произведений принимается равным нулю.

  2. Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое в том коде, в котором оно представлено; если эта цифра равна 0, прибавление не производится.

  3. Сумма частичных произведений сдвигается на один разряд вправо, при этом, если сумма отрицательна, осуществляется модифицированный сдвиг.

  4. П.п. 2 и 3 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего.

  5. Если множитель – положителен, то полученный результат представляет собой произведение. Если множитель отрицателен, то для получения произведения к результату прибавляется множимое с обратным знаком.

Прибавление производится с выравниванием складываемых чисел по старшим разрядам.

Если результат размещается в двойном слове, то он предварительно сдвигается на один разряд вправо. Произведение получается в дополнительном коде.