Сложения и вычитания чисел с плавающей запятой
| Категория реферата: Рефераты по математике
| Теги реферата: решебник 6, рефераты по предметам
| Добавил(а) на сайт: Kazak.
Предыдущая страница реферата | 1 2
После этого начинается сравнение порядков чисел Х и Y на СОЛО и сдвиг мантиссы числа с меньшим порядком вправо,
Для того чтобы учесть случаи 1 и 2, возникающие при сравнении порядков, и не делать лишних сдвигов мантиссы, превратившейся в процессе выравнивания порядков в 0, на счетчике циклов СчЦ фиксируется предельное число сдвигов, равное количеству шестнадцатеричных цифр мантиссы:
СчЦ: = 6;
При выполнении сдвига на один шестнадцатеричный разряд содержимое СчЦ уменьшается на 1. При СчЦ = 0 сдвиги прекращаются и в качестве результата берется большее слагаемое.
Микропрограмма выравнивания порядков:
|МК: |если РгС > РгD то МК1 иначе если РгС = РгD то МКЗ иначе |
| |МК2; |
|MK1: |PгB [8 ( 31]: = PгЗ [8 ( 31]; |
| |РгСм: = П(4) См, РгСм [0 ( 3]: = 0, Сч1 := Сч1+1 |
| |; |
| |Рг3[8 ( 31]:=РгСм[8 ( 31]; РгD:=Сч1, СчЦ: = СчЦ - 1 |
| |; |
| |если СчЦ ( 0 то МК; |
| |РгВ: = 0, РгА: = Рг1, РгСм := См; |
| |ШИВых: = РгСм; |
| |конец |
| |; |
|МК2: |РгА[8 ( 31] :=Рг1 [8 (31]; |
| |РгСм: = П (4) См, РгСм [0 ( 3] : = 0, Сч1 := Сч1-1 |
| |; |
| |Рг1 [1 ( 31]: = РгСм [8 ( 31], РгD: = Сч1, СчЦ: = СчЦ - 1, |
| |если СчЦ ( 0, то МК4 иначе РгА: =0, РгВ: =Рг3, РгСм: =См, |
| |ШИВых: = РгСм, |
| |конец |
| |; |
|МК4: |если РгС > PгD то МК2; |
| |PгD[0]: = 0, РгD[1 ( 7]: = Рг3[1 ( 7], РгС = 0; |
| |РгСОЛО : = РгС ( PгD; |
| |Сч1: = РгСОЛО |
| |; |
|МКЗ: |РгСм: = 0, Pгl [0 ( 7] : = РгСм, РгЗ [0 ( 7] : = РгСм |
| |; |
После выравнивания порядков модули мантисс хранятся в Pгl и РгЗ в разрядах
с 8-го по 31-й, их знаки в Тг3н2 и Тг3н1, а порядок результата в Сч1.
Сложение мантисс. Анализируются знаки мантисс и при равенстве знаков модули
мантисс складываются. Если оказывается, что См [7] = 1, то возникло
переполнение при сложении мантисс. В случае переполнения мантисса суммы
сдвигается на четыре двоичных разряда (один шестнадцатеричный разряд)
вправо, а порядок увеличивается на 1 (Сч1: = Сч1 + 1). Если после этого Сч1
[0] = 1, то формируется признак прерывания из-за переполнения порядка. Если
переполнения нет, то в РгСм формируется результат операции, для чего
содержимое Сч1 [1 ( 7] заносится в РгСм [1 ( 7], в РгСм [0] передается
знак, а в РгСм [8 ( 31]— мантисса суммы.
При различных знаках мантисс отрицательная мантисса передается на входной регистр сумматора в обратном коде и производится суммирование ее с прямым кодом положительной мантиссы и 1, прибавляемой к младшему разряду сумматора. Знак результата фиксируется в триггере знака. От полученного результата, если он отрицателен, берется его модуль. Если результат нормализован (См [8 ( 11] ( 0), то на РгСм заносятся знак результата (по значению триггера знака), порядок по значению Сч1 и модуль мантиссы.
Если результат не нормализован и нет исчезновения значимости (мантисса не равна 0), производится нормализация. Мантисса результата сдвигается влево и одновременно уменьшается порядок результата (Сч1: = Сч1 - 1). При отрицательном переполнении порядка (Сч1 [0] = 1) формируется признак исчезновения порядка. Если нормализация завершается без исчезновения порядка, формируется результат операции из кода знака, порядка и мантиссы.
Микропрограмма процедуры сложения мантисс:
| |если ТгЗн ( Тг3н2 то МЗ; |
| |РгА: = Рг1, РгВ: = РгЗ; |
| |РгСм: = См; |
| |если См[7] = 1 то М2; |
|М1: |РгСм [ 1 ( 7]: = Сч1 [1 ( 7]; |
| |РгСм [0] :== если Тг3н1=0 то 0 иначе 1; |
|М: |ШИВых: = РгСм; |
| |конец; |
|М2: |Сч1:=Сч1+1, РгСм := П(4)См, РгСм[0 ( 3]:=0; |
| |если Сч1[0]=0 то М1 иначе прерывание из-за переполнения |
| |порядка; |
|МЗ: |если Тг3н1=0 то РгА :=[pic], РгВ: = РгЗ иначе |
| |РгА : = Рг1, РгВ: = [pic]; |
| |РгСм :=РгА+РгВ +1; |
| |если См[0]=0 то M4; |
| |Рг3:= РгСм; |
| |РгА :=0, РгВ: =[pic]; |
| |РгСм:= РгА +РгВ +1; |
|М4: |ТгЗн1 := РгЗ [0]; |
|М5: |если См [8 ( 11] ( 0 то M1; |
| |если См ( 0 то М6; |
| |РгСм: = 0, прерывание из-за потери значимости; |
|M6: |Сч1:=Сч-1, РгСм := Л(4)См, РгСм[28(31]: = 0; |
| |РгЗ: = РгСм; |
| |РгВ : = РгЗ, РгА: = 0; |
| |РгСм: = См; |
| |если Сч1[0]=0 то М5; |
| |РгСм: = 0, прерывание из-за исчезновения порядка; |
Сложение и вычитание выполняются приближенно, так как при выравнивании порядков происходит потеря младших разрядов одного из слагаемых. В этом случае погрешность всегда отрицательна и может доходить до единицы младшего разряда. Чтобы уменьшить погрешность, применяют округление результата. Для этого может быть использован дополнительный разряд сумматора, в который после выполнения суммирования добавляется 1.
Скачали данный реферат: Зефиров, Jagnjatev, Jaickij, Dajneko, Мацовкин, Kursalin.
Последние просмотренные рефераты на тему: решебник по английскому класс, сообщение об открытии счета, диплом работа, инновационная деятельность.
Категории:
Предыдущая страница реферата | 1 2