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

1 Этап.

Определили знак результата. Знаковые разряды операндов складываются по модулю 2, и результат заносится в знаковый разряд. Знаковые разряды после этого обнуляются.

2 Этап.

В счётчик цикла заносится число (n-1) – число значащих разрядов, а n – длина разрядной сетки.

На втором этапе происходит обработка (n-1) циклов.

На каждом цикле анализируется очередной младший разряд множителя (регистр Р2). Если младший разряд равен 1, то переписываем на РА содержимое регистра Р1 (это переход на микропрограммный уровень); а если младший разряд равен 0, то обнуляем РА. После этого в сумматоре складывается содержимое РА и РВ (РВ предварительно обнулили), и на выходе сумматора СМ образуется сумма частичных произведений до сдвига. На РС заносится сумма частичных произведений после сдвига, которая потом переписывается на РВ. Младший разряд сумматора при сдвиге будет заноситься в старший разряд Р21, и он будет (освобождающийся) представлять собой младший разряд произведения. В этом же цикле множитель сдвигается на один разряд вправо путём пересылки с Р2 на Р21, и после записываем на Р2. Счётчик цикла уменьшаем на 1. Если счётчик цикла равен 0, то дальше идёт коррекция результата: старшая часть на РС, младшая на Р21, происходит сдвиг на один разряд. Либо сразу вместо коррекции можно взять n.

Деление чисел с фиксированной точкой. Деление с восстановлением остатка и без.

x/y=z x- делимое (2n разрядов)

y- делитель (n разрядов)

z- частное (n разрядов)

Надо проверить, вместится ли частное в разрядную сетку:

z < 2n-1

Пример.

n=4

0

1

1

1

знак

8=23=2n-1→z< 2n-1

x/y< 2n-1

x-2n-1∙y<0

20

1

0001

21

2

0010

22

3

0100

23

4

1000


Какова степень, на столько разрядов и сдвигается

Если любое двоичное число умножить на 2m, то это значит, что двоичное число сдвигается на m разрядов влево.

Этапы деления.

1 Этап.

Проверка деления. На первом этапе деления проверяется возможность проведения операции деления: из делимого x вычитается делитель y, сдвинутый на (n-1) разряд влево. Если результат вычитания оказывается меньше 0, то деление возможно, т.к. результат z уместится в разрядную сетку n. В противном случае (результат больше 0), z будет требовать больше, чем n разрядов, для своего представления, и, следовательно, деление невозможно.

2 Этап.

Определение знака результата. Ниже рассматривается случай деления в прямом коде. Знак результата определяется путём сложения по модулю 2 знаковых разрядов операндов. После этого знаковые разряды операндов обнуляются.

3 Этап.

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

Деление с восстановлением остатка.

Пример.

Число 25 (0.0011001) разделить на 5 (0.101).

n=4

x-2n-1∙y<0

0.00110 0 1 0. 1 0 1

0101 0. 1 0 1

рез<0

0011

_0110

0101

рез<0 0001

0010

0101

рез<0

0010

_0101

0101

0000

На очередном этапе частичный остаток сдвигается влево на один разряд. В освободившийся разряд заносим очередную цифру делимого. Из сдвинутого частичного остатка вычитаем делитель (в ЭВМ производится сложение с дополнительным или обратным кодом). Получаем новый частичный остаток. Если результат получился отрицательный, то в очередную цифру частного заносим 0 и восстанавливаем частичный остаток. В противном случае (если результат положительный, либо равен 0), заносим 1.

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