Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦУМП лекция рус.doc
Скачиваний:
324
Добавлен:
09.02.2016
Размер:
5 Мб
Скачать
☆

Деление двоичных чисел в прямом коде.

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

Частное определяется путем деления модуля делимого X на модуль делителя У. При этом должно соблюдаться условиеХ<У. В противном случае возникает переполнение разрядной сетки ЭВМ, что является недопустимым. Для этого перед выполнением деления с фиксированной запятой производится пробное вычитание делителя из делимого. Если при этом остаток имеет отрицательный знак, то деление возможно, а положительный знак указывает на некорректность деления.

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

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

Деление двоичных чисел в дополнительном коде.

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

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

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

Пример 2.2.Разделить без восстановления остатка делимое Х=1.0011010 на делитель Y=0.101.

Решение: [X]ДОП= 1,1100110; [-Y]ДОП= 1,011

+

[X:Y]ДОП= 1.10 10 1,1100110 [X]ДОП

0,101 [Y]ДОП

0,0110110 Ro

+

0,1101100 Сдвинутый влево Ro

1,011 [-Y]ДОП

0,0011100 Остаток R1

+

0,0111000 Сдвинутый влево R1

1,011 [-Y]ДОП

1,1101000 Остаток R2

+

1,1010000 Сдвинутый влево R2

0,101 [-Y]ДОП

0,0100000 Остаток R3

+

0,1000000 Cдвинутый влево R3

1,011 [-Y]ДОП

1,1110000 R4

О

+

кругление 1,1010

результата 1

Результат: [X:Y]ДОП= 1,1011

Остаток [R] ДОП= 1,111

Пример 2.3.Разделить без восстановления остатка делимое Х=0,0011010 на делитель Y=1,101.

[X]ПР= 0,0011010; [Y] ДОП= 1,011

[Y]=0,101

+

[X:Y] ДОП= 1,1010 0,0011010 [X] ПР

1,011 [Y] ДОП

1,1001010 Остаток Ro

+

1,0010100 Сдвинутый влево Ro

0,101 [Y]

1,1100100 Остаток R1

+

1,1001000 Сдвинутый влево R1

0,101 [Y]

0,0011000 Остаток R2

+

0,0110000 Сдвинутый влево R2

1,011 [Y] ДОП

1,1100000 Остаток R3

+

1,1000000 Сдвинутый влево R3

0,101 [Y]

0,0010000

О

+

кругление: 1,1010

результата 1

Результат [X:Y] ДОП= 1,1011

Остаток [R]ПР= 0,001

Пример 2.4.Разделить без восстановления остатка делимое Х = 1,0011010 на делитель Y=1,101.

Решение: [X]ДОП= 1,1100110

[Y]ДОП= 1,011 [Y]ПР= 0,101

+

X:Y= 0,01 01 1,1100110 [X]ДОП

0,101 [Y]

0,0110110 Остаток Ro

+

0,1101100 Сдвинутый влево Ro

1,011 [Y] ДОП

0,0011100 Остаток R1

+

0,0111000 Сдвинутый влево R1

1,011 [Y] ДОП

1,1101000 Остаток R2

+

1,1010000 Сдвинутый влево R2

0,101 [Y]

0,0100000 Остаток R3

+

0,1000000 Сдвинутый влево R3

1,011 [Y] ДОП

1,1110000 R4

Результат [X:Y] ДОП= 0,0101

Остаток [R]ПР= 1,111

Особенности выполнения операций над числами в форме с плавающей запятой.

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

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

Для реализации операции умножения произведение = определяется раздельным выполнением двух действий: 1)рz=рx+ру и 2)=. Если выполняемая операция деление, то=и определение результата соответствует получению разности порядковрz=рx-ру и частного мантисс=/

Полученное после любой из операций - сложения, вычитания, умножения или деления - число является окончательным результатом, если мантиссаимеет нормальную форму. Если форма отличается от нормальной, то завершающая процедура операции - нормализация мантиссы.

При нарушении нормальной формы вида <мантисса результата увеличивается последовательным сдвигом влево до ликвидации этого нарушения. Это действие сопровождается согласованным уменьшением порядка результата: сдвиг влево на одинQ-ичный разряд мантиссы соответствует уменьшению на одну единицу порядка.

Нарушение нормальной формы вида 1 (обычно в этом случае 1<2) ликвидируется сдвигом мантиссы на одинQ-ичный разряд вправо, т.е. уменьшением мантиссы вQ рaз и соответствующим увеличением порядка на одну единицу.

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

Основная литература: 3 [67-98],3 [51-82]

Дополнительная литература:5 [23-28], 7 [35-61]

Контрольные вопросы:

  1. Приведите алгоритм умножения чисел с фиксированной запятой?

  2. Чем отличается умножение двоичных чисел в прямом и дополнительных кодах?

  3. Отметьте осбенности выполнения операции умножения и деления чисел с плавающей запятой от умножения и деления чисел с фиксированной запятой?

  4. Назовите основные способы деления и умножения двоичных чисел?

  5. Что такое сумма частичных произведений (СЧП)?

Тема лекции 3. Арифметические и логические основы цифровых устройств (ЦУ) и микропроцессорных систем (МПС). Функции алгебры логики (булева алгебра). Способы задания ФАЛ. Комбинационные схемы и реализация булевых функций. Последовательностные схемы (конечные автоматы).