Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 289

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Существуют два метода деления: с в о с с т а н о в л е н и е м и без в о с с т а н о в л е н и я о с т а т к а .

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

При втором метоДе деления отрицательный остаток не восстав навливается. Для определения очередного разряда частного от­ рицательный остаток сдвигается на один разряд влево и к нему прибавляется делитель. Так как сдвиг двоичного остатка iRh. на один разряд влево соответствует в этом случае умножению его на 10 (два), то прибавление к сдвинутому отрицательному остатку делителя D равносильно вычитанию делителя D из предваритель­ но восстановленного и сдвинутого остатка, т. е.

lCb^ + D = 10 (Rk + D) — D.

(2.17)

Следовательно, при таком способе продолжения деления проис­ ходит автоматическое восстановление остатка.

Наиболее просто частное получается тогда, когда производит­ ся деление абсолютных значений чисел (цифровые части делимого и делителя представлены в прямом коде). При этом знак частного определяется путем суммирования по модулю два цифр, изобра­ жающих знаки делимого и делителя. Как и при умножении, знак частного приформировывает-ся к цифровой части в конце деления. Разряды частного определяются по следующему пра­ вилу: если полученная очередная разность положительна, то в соответствующий разряд частного заносится 1, если отрица­ тельна, то 0.

Если числа представляются правильными дробями, то при пер­ вом вычитании делителя из делимого определяется значение це­ лой части частного (значение разряда слева от запятой). Очевид­ но, что для исключения переполнения делитель должен быть боль­ ше делимого. В противном случае возникает переполнение, так как в результате вычитания делителя из делимого получится по­ ложительный остаток, и, следовательно, разряд целой части част* ного будет равен единице.

При делении правильных дробей частное анализируется на пе­ реполнение и вырабатывается соответствующий признак резуль­ тата ПР. Признак ПР=11 вырабатывается, когда первый остаток положительный, т. е. делитель меньше делимого. Могут также вы­ рабатываться специальные признаки результата по знаку частного, указывающие его величину по отношению к нулю.

57


Пример 2.13. Рассмотрим процесс деления с восстановлением остатка.

Делимое

Делитель

1 -й остаток (отрицательный) Восстановление остатка

Сдвиг влево восстановленного остатка

2 -й остаток (положительный) Сдвиг'влево 2-го остатка

3-й остаток (отрицательный)

I

I I

Milnp — 0 :0 1

[-^2]пр = пю

00.010.Ю

+11.10 О'.Ю

11.11

+0 0 ..1 0

00 .01

00 .1 0

■11 .1 0

00 .0 0

+0 0 ..0 0

1 1 ..1 0

1 1 . 1 0 .

'i'

0 ® 1

= 1

определение

*

v

знака частного

частное ->- Г. 10

=

В процессе деления в сум­ маторе производятся действия

вмодифицированных прямом

идополнительном кодах.

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

Пусть заданы: делимое

[i4,]np =

б'ИООО

6

ф 0

= 0 — знак частного

 

 

 

 

делитель

[Л2]пр =

0 '. 1 0 1 1

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Деление с использованием

 

 

Деление с использованием

 

 

модифицированного

 

 

 

модифицированного

 

 

 

дополнительного кода

 

 

обратного кода

 

 

 

 

| Дополнительный разряд^

 

 

Дополнительный

разряд

 

 

 

 

00.1000

0.10 1

 

 

 

+

00.1000

0.101

1

I

 

 

 

+ 11.0101

0’Л О11 [ 1!

 

 

11.0100

04 0 1 111I

 

 

 

 

 

^ ^ ^ ^ ^

 

 

 

 

 

^ ^^ ^ ^

 

1 -

й остаток

11. 1101-1

 

1

остаток

-

1 1 .1 1 0 0 - 1

 

 

Сдвиг

ч----- Ж

 

,11.1010

 

 

Сдвиг

 

11.1001

 

 

 

 

 

 

+00.1011

 

 

 

 

+

00.1011

 

 

 

2 -

й остатокЖ 00.0101—

 

 

 

 

 

 

 

 

 

г

00.0100

 

 

 

Сдвиг

ч-----

 

 

, 00.1010

 

 

 

 

I---- ►+1

 

 

 

3-

 

 

+ 11.0101

 

 

2 -

й остаток00.0101

 

 

й остаток

11.1111

 

 

Сдвиг ч-----

,00.1010

 

 

 

Сдвиг

ч-----

ж

 

,11.1110

 

 

3-

 

+

11.0100

 

 

 

 

 

 

й остаток- 11.1110------

 

 

 

 

 

+ 00.1011

 

 

 

 

 

 

 

 

 

4-й остаток Сдвиг ч-----

V

00.1001-

Сдвиг ч-----

11.1101

 

_______+

*

01.0010

+

00.1011

 

+ 11.0101

 

 

рОО.ЮОО

 

 

 

5-й

остаток

ж

00.0111

 

 

I

>-+1

4-й

остаток

00.1001___

Сдвиг ч—■— ■

+00.1110

 

 

 

11.0101

Сдвиг ч-----

,01.0010

6

остаток

^

00.0011

 

 

+ 11.0100

 

 

7-00.0110

 

 

 

 

 

 

I

- + 1

 

 

 

 

5-й

остаток

00.0111 —

 

 

 

 

Сдвиг ч-----

,00.1110

 

 

 

 

 

 

+ 11.0100

 

 

 

 

 

 

рОО.ООЮ

 

 

 

 

 

 

I—

v + l

 

 

 

 

6

остаток

00.0011—

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

Как показано в примере 2.14, особенность применения обрат­ ного модифицированного кода состоит в том, что единица, вытал­ киваемая при сдвиге из старшего знакового разряда, не теряется, как в случае дополнительного кода, а передается по цепи циклит ческого переноса в младший цифровой разряд.

59



Для обеспечения возможности округления в машинах часто вы­ числяется значение дополнительного разряда частного путем вы­ полнения дополнительного шага деления. Округление выполняется путем прибавления единицы к значению дополнительного разряда. Для примера 2.14 округленное частное равно

ОМОН !Т|

ОМ 100 Гб'!,

т. е. Г -ф П

= ОМ 100.

'--1

L Л2-]Пр

 

 

 

О п е р а ц и и н а д ц е л ы м и д в о и ч н ы м и ч и с л а м и

Для выполнения арифметических действий такие числа вырав­ ниваются по младшим разрядам, правее которых факснруется за­ пятая. В арифметическом устройстве операции выполняются над операндами, имеющими одинаковую длину. Однако в запоминаю­ щем устройстве длина их может быть разной. Обычно в машинах устанавливается несколько возможных для использования длин: например, полуслово, слово и двойное слово, соответственно имею­ щие 16, 32 и 64 двоичных разряда. Длины операндов, над кото­ рыми должны быть произведены действия, указываются в коман­ дах программы.

Крайний левый разряд (нулевая позиция) операнда любой дли­ ны отводится для представления знака (рис. 2.1,6). За исключе­ нием выравнивания по правой границе операндов сложение и вы­ читание в арифметическом устройстве целых двоичных чисел выполняются аналогично действиям над правильными дробями. Если, например, в запоминающем устройстве отрицательные числа хра­ нятся в дополнительном коде, то, когда требуется выполнить алге­ браическое сложение, они просто складываются (см. пример 2.6).

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

Переполнение можно обнаружить применением в арифметиче­ ском устройстве модифицированных кодов или путем анализа пе­ реносов в знаковый разряд и из знакового разряда (см. при­ мер 2.10).

Из арифметических действий над целыми числами большими особенностями обладают операции умножения и деления. Произ­ ведение двух «-разрядных двоичных чисел имеет не более 2п раз­ рядов. Это обстоятельство необходимо учитывать при перемно­ жении целых чисел. На машинный код результата операции умно­

€0


жения должно отводиться удвоенное количество разрядов. В этом случае при умножении никогда не произойдет переполнения.

Процесс собственно перемножения целых двоичных чисел мо­ жет строиться как по схеме а, так и по схеме б, которые были рас­ смотрены в примере 2.11. В обоих случаях перемножаются пол­ ностью я-разрядные операнды независимо от того, сколько разря­ дов в них занимают целые числа.

При делении целых чисел, наоборот, один из операндов, а имен­ но делимое, имеет удвоенное количество разрядов по отношению к делителю и частному. Так же как и умножение, собственно де­ ление реализуется аналогично рассмотренному выше. Важно лишь правильно начать вычитание делителя из старших разрядов де­ лимого. Для этого вначале делают пробные шаги, чтобы пра­ вильно расположить делимое и делитель. Критерием правильности расположения может быть получение первого отрицательного остатка.

§2.5. Арифметические операции над числами

сплавающей запятой

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

Сложение. Порядки и мантиссы, представляющие числа в форме с плавающей запятой, в запоминающих устройствах обычно хра­ нятся в прямом коде (см. § 2.3).

При выборке слагаемых из запоминающего устройства их ман­ тиссы и порядки разделяются и поступают в соответствующие схе­ мы арифметического устройства. В схеме, оперирующей поряд­ ками, они сравниваются. Наиболее просто это осуществляется, если вместо истинных порядков используются характеристики (см. § 2.3). Если порядки слагаемых неодинаковы, то осуществляется выравнивание порядков путем сдвига вправо мантиссы числа с меньшим порядком и соответствующим увеличением послед­ него.

Действительно сумма двух нормализованных чисел А и В,

пред­

ставленных в полулогарифмической форме, на основе

(2.4)

может

быть записана в виде

 

 

S = N Psms = N PAmA + N PBmB.

 

(2.18)

Так как мантиссы представляются меньшими

единицы, то

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

61