Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_new_ok.doc
Скачиваний:
140
Добавлен:
10.03.2016
Размер:
9.43 Mб
Скачать

§ 4.5 Алу для умножения чисел с фиксированной точкой.

Умножение происходит по второму методу.

Схема АЛУ приведена в §4.3 с учетом пунктирных линий и регистров RG2 и RG2'.

Алгоритм умножения:

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

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

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

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

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

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

Работа АЛУ:

1. В регистр RG1 принимается множимое, регистр RGB обнуляется.

2. В счетчик циклов (на схеме не показан) заносится число разрядов множителя; в регистр RG2 заносится множитель.

Далее идет процесс умножения. В зависимости от значения младшего разряда множителя в RG2 (0 или 1) к частичному произведению прибавляется ноль или множимое.

Полученная сумма в регистре сумматора со сдвигом на разряд вправо передается в регистр RGB. Одновременно множитель сдвигается на разряд вправо путем косой передачи из RG2 в RG2' и возврата снова в RG2. Старшие разряды RG2' при этом освобождаются, и в них заносятся младшие разряды получаемого результата.

Содержимое счетчика с каждым перемножением уменьшается на единицу, и при достижении содержимого, равного нулю, процесс останавливается.

В результате в регистрах RGCM и RG2' будут храниться соответственно старшие и младшие разряды произведения.

Особенностью умножения целых чисел является необходимость представления результата умножения двух n-разрядных слов двойным словом. При этом число цифровых разрядов двойного слова будет на единицу больше числа (2n-1) цифровых разрядов произведения двух чисел, имеющих (n-1) цифровых разрядов. Поэтому после перемножения чисел результат необходимо сдвинуть на разряд вправо для правильного его расположения в разрядной сетке формата двойного слова.

После сдвига результата он передается по шине выхода в ОП.

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

§ 4.6 Деление целых чисел с фиксированной точкой.

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

Деление можно осуществить двумя способами:

1. Деление с неподвижным делимым и со сдвигаемым вправо делителем.

Способ основан на копировании способа ручного деления.

2. Деление со сдвигаемым делимым и неподвижным делителем.

АЛУ для деления этим методом:

Неподвижный делитель в дополнительном коде (число В) заносится в регистр А. Делимое (число А), сдвигаемое влево относительно числа B, заносится в регистр В старшими разрядами, а в регистр RG2 – младшими.

Деление начинается со сдвига делимого путем косой передачи его в регистр сумматора (старшие разряды) и в регистр RG2' (младшие разряды) тоже путем косой передачи. Далее в сумматоре происходит вычитание делителя, образуется частичный остаток (с помощью подсуммирования +1 в сумматор) и очередная цифра частного (единица, если остаток больше нуля, и ноль, если остаток меньше нуля) заносится в освободившийся разряд RG2 после сдвига числа А. При этом, если остаток получен меньше нуля, то его значение восстанавливается.

Алгоритм деления:

1) Берутся модули делимого и делителя.

2) Исходное значение частичного остатка принимается равным старшим разрядам делимого.

3) Частичный остаток удваивается сдвигом на разряд влево, а в освободившийся разряд заносится очередная цифра делимого.

4) Из сдвинутого остатка вычитается делитель и анализируется знак результата.

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

6) Пункты 3) – 5) выполняются до получения модуля частного.

7) Знак частного «+», если знаки делимого и делителя одинаковы; знак «-» в противоположном случае.

Недостаток алгоритма: нужен дополнительный такт для восстановления остатка, поэтому иногда применяется деление без восстановления остатка.

Алгоритм деления без восстановления остатка:

Пункты 1) – 3) аналогичны рассмотренному алгоритму.

4) Из сдвинутого остатка делитель вычитается, если остаток больше нуля, и прибавляется, если остаток меньше нуля.

5) В частное заносится единица, если результат больше нуля, и ноль, если меньше.

Пункты 6) – 7) аналогичны пунктам предыдущего алгоритма.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]