Б. Действия над числами, представленными в нор­мальной форме

При алгебраическом сложении чисел, предста­вленных в нормальной форме, необходимо учитывать:

1. Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами.

2. Сложение кодов чисел производится путем сло­жения мантисс только при одинаковых порядках (ха­рактеристиках) слагаемых. За общий выбирается наи­больший порядок. Выравнивание порядков слагаемых осуществляется изменением мантиссы меньшего чи­сла.

Пусть и РАВ, тогда разность порядков и .

,

Где - мантисса, приведенная к большему порядку путем ее сдвига вправо на разрядов основания s.

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

4. Результаты в прямом коде нормализуются.

5. Действия в сумматоре выполняются только над кодами мантисс, которые поступают из регистров сла­гаемых в младшие 24 разряда сумматора, знаки ман­тисс и значения характеристик заносятся в специальные схемы, которые обеспечивают выравнивание характеристик, нормализацию мантиссы результата, формирование знака и характеристики суммы. В стар­шие разряды (0—7) сумматора вводятся нули.

6. Алгоритмы операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых:

а) если знаки слагаемых одинаковы (положитель­ные или отрицательные), то модули мантисс (прямые коды) суммируются. Переполнение определяется на­личием переноса 1 из старшего разряда мантиссы в 7-й разряд регистра результата сумматора (в поле характеристики), что вызывает нарушение норма­лизации мантиссы влево. Нормализация результата производится в регистре сдвигом мантиссы на одну шестнадцатиричную цифру вправо. Старшая тетрада мантиссы при этом заполняется 0001, а характери­стика результата увеличивается на 1. После этого в регистре результата сумматора формируется результат операции: из схем анализа знаков и характеристик заносятся в нулевой разряд знак одного из слагаемых, в 1—7 разряды — характеристика, а в 8—31 разрядах сохраняется мантисса суммы в прямом коде.

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

Нормализация мантиссы суммы производится сдвигом ее влево на одну шестнадцатиричную цифру и уменьшением характеристики на единицу. После этого в регистре сумматора формируется результат: в нулевой разряд заносится знак большего по модулю слагаемого, в 1-7 разряды — характеристика и в 8-31 разряды — мантисса результата в прямом коде.

Реализацию этих положений рассмотрим на при­мерах.

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

Пример 6. Дано: ; . Найти С1= A+B, С2=-A-B.

Решение. A(16)==F,E; B(16)=0,5.

а) Нормализация мантисс и определение характе­ристик:

mA=0,FE; PXA=40+1=41;

тB = 0,5; Pхв == 40 + 0 = 40.

б) Выравнивание характеристик:

; .

в) Выполнение действий.

Вычислим сначала С1 = А + В:

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

Нормализация мантиссы:

[mC1]пк = 00'103000; РXC1,= 41+1=42.

.

В разрядной сетке регистра сумматора формируется результат действия: заносятся знак результата (+), характеристика (42) и сохраняется мантисса в прямом коде.

Ответ

 

Или С1=42103000(16)

 

Теперь найдем С2= -А-В.

Так как числа А и В и результат С2 хранятся в пря­мом коде, то нет необходимости выполнять двойное преобразование: данных в дополнительный, а резуль­тата в прямой коды.

Поэтому действие выполняется С2 = -(А+В), т. е. производится сложение прямых кодов мантисс, а ре­зультату приписывается знак одного из чисел (минус), т е. С2=-С1.

Ответ.

С2= 1100 0010 0001 0000 0011 0000 0000 0000

или C2 = C2103000(16).

Так как слагаемые с разными знаками, то едини­ца переноса из старшего разряда является признаком положительного результата и стирается, компенсируя константу дополнительного кода.

Проверка

С3 =0100 0001 1111 1001 0000 0000 0000 0000

или Сз = 41F90000(16).

 

Теперь найдем С4 = В-А.

 

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

[mC1]пк = 00'F90000; РXC41,= 41

 

Проверка. .

Ответ.

С4 = 1100 0001 1111 1001 0000 0000 0000 0000

или С4 -> C1F90000(16).

 

Пример 8. Дано: .

Найти: C1 = А-В, С2 = В-А.

Решение. А(16) = 81, В(16) == 73,С.

а) Нормализация мантисс и определение характе­ристик:

mA=0,81; PXA=40+2=42;

тB = 0,73С; PXB = 40 + 2 = 42.

б) Выполнение действий.

Вычислим С1= А-В.

Единица переноса стирается, результат положи­тельный, но произошло нарушение нормализации вправо.

Нормализация мантиссы:

.

Проверка. .

Ответ.

C1 = 0100 0001 1101 0100 000 0000 0000 00000

илиC1 = 41D40000.

 

Вычислим C2 = B-А ,

 

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

 

Старшая тетрада мантиссы равна нулю — наруше­ние нормализации вправо.

Нормализация мантиссы:

.

Ответ.

С2=1100 0001 1101 0100 0000 0000 0000 0000

или С2 = C1D40000.

 

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