Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.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