Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

суммы, т. е. появление в левых разрядах формата мантиссы незначащих нулей. В этом случае необходимо нормализовать мантиссу согласно условию (2.3). Эта операция, называемая нормализацией влево, заключается в сдвиге мантиссы влево на г (г < п) разрядов (умножении мантиссы на 2) и соответствующем уменьшении порядка суммы:

7 fZ; т,, если 2-"<Z<l; ,ол

in~ - \z.2; т,-г, если Z<2-, •>

где г - число левых нулевых двоичных разрядов мантиссы суммы. При программной реализации нормализации влево величина г, как правило, не определяется, а сдвиги влево и коррекция порядка производятся до тех пор (при ненулевой мантиссе), пока не будет выполнено условие (2.3).

При реализации процессов, описываемых формулами (2.10) - (2.13), возможно появление четырех особых ситуаций, которые должны выявляться программными средствами. При выравнивании порядков возможен случай, когда Дт п, т. е. разность порядков слагаемых превышает разрядность цифровой части мантиссы. Очевидно, что при такой денормализации мантиссы меньшего слагаемого она полностью выходит за рамки разрядной сетки, т. е. становится равной нулю. В этом случае результат равен большему слагаемому, и нет необходимости вьшолнять сложение. При сложении равных чисел с разными знаками мантисса суммы равна нулю. Такая нулевая мантисса не может быть нормализована, и факт ее появления используется для обнуления порядка суммы. При нормализации мантиссы суммы вправо возможно переполнение порядка суммы: т, = т -\- \ > > Штгх, а при нормализации влево - антипереполнение порядка суммы: т = т - г <. т. Появление таких ошибок свидетельствует о неправильном выборе формата с точки зрения представления диапазона чисел в конкретном вычислительном процессе. Такие ошибки должны обязательно выявляться, и в случае переполнения необходимо прекратить процесс вычислений.

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



обнулении результата в случае антипереполнения порядка [32 -34]. Основная прогрешность возникает при денормализации мантиссы, поскольку при последующей нормализации суммы вправо эта первоначальная погрещность может только уменьшиться, а при нормализации суммы влево погрешность можно вообще устранить, если сохранить хотя бы два первых выдвинутых разряда денормализованной мантиссы и использовать их.при нормализации суммы влево (незначащие нули могут появиться лишь при вычитании близких чисел с Дт 2). Ошибку обнуления результата при антипереполнении порядка учитывать не будем, считая, что либо эта ошибка в процессе вычислений не возникает, либо процесс вычислений останавливается при ее появлении.

Если бы при сложении нормализованной мантиссы большего слагаемого с денормализованной мантиссой меньшего слагаемого в соответствии с формулой (2.11) использовались все п-\-Ат разрядов слагаемых, то сумма была бы точным числом (при условии, что точны слагаемые). Однако выдвинутые за рамки и-разрядного формата денормализованные разряды мантиссы меньшего слагаемого не участвуют в сложении, т. е. сумма образуется путем округления. Очевидно, что в случае отбрасывания Дт разрядов граничная абсолютная ошибка округления мантиссы суммы не превышает величины 2~", а граничная относительная ошибка округления суммы (в наихудшем случае отсутствия переполнения суммы и при минимальном значении ее нормализованной мантиссы) равна

6 p(z)=A=(=:ir; 2-«+«. (2.14)

Исходные слагаемые являются числами ограниченной точности, граничные относительные ошибки представления которых определяются неравенством (2.6). Согласно формуле (1.14), граничная относительная ошибка суммы не превосходит ошибки наименее точного слагаемого. Однако округление суммы увеличивает эту ошибку на величину, вычисленную по формуле (2.14), т. е. в 2 раза, и сумма становится менее точной, чем слагаемые. Ошибку округления можно уменьшить, если использовать правило симметричного округления (1.9).

Далее приведены программы сложения чисел с плавающей запятой СДПЗЗ и СДП34, реализующие рассмотрен-



ные алгоритмы сложения для короткого (8,16) и длинного (8, 24) форматов чисел.

2.2.2. ФОРМАТ (8, 16)+ (8, 16)= 8, 16)

Программа СДПЗЗ выполняет сложение чисел, представленных в формате (8, 16) (см. рис. 2.3, а):

1000 0090 00В8 00D6 10В0 10DO 10F1

1000 СГ19000

1003 С8

1004 С5

1005 50

1006 59

1007 ЕВ

1008 CD9000 100В ЕВ 100С С21410

iOOF CDB800

1012 С1

1013 С9

1014 1А

1015 Е680

1017 07

1018 17

1019 47 101А 7Е

КОМЗ

ОБМЗ

ДМАН2

НМАН2

ПМАНг

ORG SET SET SET SET SET SET

lOOOH 90H 0Б8Н 0D6H lOBOH lODOH lOFlH СДПЗЗ:

гПОДПРОГРАММА СЛОЖЕНИЯ 3- БАЙТНЫХ ДВОИЧНЫХ ЧИСЕЛ С ПЛА-гВАЮИЕИ ЗАПЯТОЙ В ДОПОЛНИТЕЛЬНОМ КОЛЕ ФОРМАТА (8г16>= г=(ПОР»МАН>»ГДЕ БАЙТ ПОРЯДКА СОДЕРЖИТ БИТ 3tlAKA МАКГИССЫ ;И ЦЕЛОЧИСЛЕННЫЙ ДВОИЧНЫЙ ПОРЯДОК СО СМЕШЕНИЕМ +40Н,А гДВА БАЙТА МАНТИССЫ-СТБ И МЛБ-ДЕОИЧНОЕ ДРОБНОЕ НОРМАЛИ-гЗОВАННОЕ ЧИСЛО В ДОПОЛНИТЕЛЬНОМ КОЛЕ.,

гВХОДНЫЕ ПАРАМЕТРЫ:(ВгС)-АДРЕС СЛАГАЕМОГО 1т(HfL)-АДРЕС гСЛАГАЕМОГО 2.ВЫХОДНЫЕ ПАРАМЕТРЫ:(В>С)~АДРЕС СУММЫ (СУМ-гМА НА МЕСТЕ СЛАГАЕМОГО 1) тСУ--1-ПРИЗНАК ПЕРЕПОЛНЕНИЯ ИЛИ гАНТИПЕРЕПОЛНЕНИЯ ПОРЯДКА СУММЫ.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИ-гСТРЫтСОХРАНЯЮТСЯ (BtC).(H.L) .ГЛУБИНА СТЕКА-Ю.ИСПОЛЬЗУ-г ЮТСЯ ПОДПРОГРАММЫ : *К0МЗ* т * ПМЗ*, *0БМЗ» т *ДНАН2» т «ПМАН2* т г*НМАН2*.

гО«ЁНКА:ДЛИНА-161 БАЙТ (+127 БАЙТ ПОДПРОГРАММ).ВРЕМЯ-НЕ гБОЛЕЕ 2563 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

гПРОВЕРКА СЛАГАЕМОГО 2 (СЛ2) НА НОЛЬ

г2=1.ЕСЛИ СЛ2=0 гЕСЛИ СЛ2=0»(CY=0) <СЛ1) НА НОЛЬ гСОХРАНЕНИЕ АДРЕСА СЛ1

CALL КОМЗ RZ

гПРОВЕРКА СЛАГАЕМОГО

PUSH MOV MOV ХСН6 CALL XCHG JNZ

В DrB E.C

КОМЗ

ПЕР1

г(ВгЕ)-АДРЕС СЛ1

гz=l.ECли сл1=о

гЕСЛИ СЛ1 НЕ НОЛЬ

гПЕРЕМЕИЕНИЕ СЛ2 НА МЕСТО СЛ1 (СЛ1=0тСЛ2 НЕ О) CALL ПМЗ гСЛ2 НА МЕСТЕ СЛ1 POP В гВОССТАНОВЛЕНИЕ АДРЕСА СЛ1

RET гЕСЛИ СЛ1=0.(С¥=0)

гОБА СЛАГАЕМЫЕ НЕ НОЛЬ.ПОЛУЧЕНИЕ МОДИФИЦИРОВАННЫХ КОДОВ

гЗНАКОВ СЛАГАЕМЫХ В (В,С):00="+"т11="-"

ПЕР1!

LIiAX

BrA ArM

г(А)-П0Р1

г ВЫДЕЛЕНИЕ ЗНАКА

г(Б)-КОД ЗНАКА СЛ1



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0082
Яндекс.Метрика