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

2. Моделирование функционирования алу при выполнении операции деления методом без восстановления остатка над числами, представленными в прямом коде.

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

Рис. 14. Структурная схема АЛУ для операции деления

Предположим, что текущий остаток А больше или равен нулю, сдвигаем его влево 2А и вычитаем из него делитель d. Получаем 2А-d. Выполненные действия аналогичны методу с восстановлением остатка. Если текущий остаток меньше нуля, в предыдущем методе восстанавливали остаток А+d, сдвигали его 2(А+d) и на следующем шаге вычитали делитель 2(А+d)-d=2А+d. Но можно поступить и по-другому: при А<0 сдвинуть промежуточный остаток 2А и прибавить к нему делитель 2А+d. Получим тот же результат, что и при восстановлении остатка.

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

  1. Анализ знака промежуточного остатка.

  2. Если А>0, то в очередной разряд частного заносят значение 1 и вычитают делитель, если А<0, то в очередной разряд частного заносят значение 0 и прибавляют делитель.

  3. Остаток сдвигают влево на один разряд.

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

Пример 2.

Z =; X=15, Y=-3

Зн

Информ. разряды

X=

0

0

0

0

0

0

1

1

1

1

Y=

1

0

0

1

1

Формируем знак результата путем сложения по модулю 2 знаков делимого и делителя: ZN=01=1. Обнуляем знаковый разряд делителя, получаем Y=00011.

Дополнительный код делителя: [Y]доп.код=11101.

Описание операции

Зн.

Информац. разряды

Делимое

+00

0000

1111

Сдвиг делителя влево на 4 разряда, вычитание делителя

1

1101

Остаток от деления < 0 => деление возможно

1

1101

1111

Сдвиг влево остатка на 1 разряд

+1

1011

1110

Сложение с делителем

0

0011

1-ый остаток от деления < 0

1

1110

1110

Сдвиг влево остатка на 1 разряд

+1

1101

1100

Сложение с делителем

0

0011

2-ой остаток от деления > 0

0

0000

1100

Сдвиг влево остатка на 1 разряд

+0

0001

1000

Вычитание делителя

1

1101

3-ий остаток от деления < 0

1

1110

1000

Сдвиг влево остатка на 1 разряд

+1

1101

0000

Сложение с делителем

0

0011

4-ый остаток от деления = 0

0

0000

0000

Z=

1

0

1

0

1

Зн.

1ост

2ост

3ост

4ост

Структурная схема АЛУ для операции деления без восстановления остатка аналогична структурной схеме АЛУ при выполнении операции деления с восстановлением остатка.

Блок-схема выполнения операции деления методом без восстановления остатка представлена на рис. 15.

Формирование знака результата, обнуление знаков делимого и делителя

Сдвиг делимого на 1 разряд влево

Пробное вычитание делителя

Деление невозможно “0”

<0” Деление возможно

Запись в RA делителя в прямом коде

Суммирование RA и RB (промежуточного остатка)

Сдвиг промежуточного остатка на 1 разряд влево

Запись в RA делителя в обратном коде

Суммирование RA и RB (промежуточного остатка) с прибавлением 1

“≥0”

<0”

Запись 1 в очередной разряд частного

Запись 0 в очередной разряд частного

Запись в RA делителя в прямом коде

Суммирование RA и RB (промежуточного остатка)

Сдвиг промежуточного остатка на 1 разряд влево

Сдвиг промежуточного остатка на 1 разряд влево

Запись в RA делителя в обратном коде

Суммирование RA и RB (промежуточного остатка) с прибавлением 1

Уменьшение содержимого счетчика на 1

=0”

Рис. 15. Блок-схема выполнения операции деления без восстановления остатка

>0”