КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритмы типов ПД или ПО
Настоящий алгоритм в основных чертах подобен рассмотренному выше алгоритму типа ПП. Основное отличие состоит в том, что операция вычитание заменяется сложением в дополнительном или обратном кодах (см. п. 1.3). Отметим главные особенности этого алгоритма: 1) Числа в памяти хранятся в прямых кодах. 2) Вычисления выполняются над модулями чисел. 3) Действия над модулями определяются в соответствии с табл. 1.1. 4)Если DM:=0, то êSê= êАê+êВê, далее проверяется наличие переполнения разрядной сетки сумматора, в противном случае ЗНS=ЗНА и переход к п. 9), иначе 5) DM=1 и выполняется сложение модулей в дополнительном (обратном) кодах, вычисляется псевдосумма S* = ïAï + [-çBç]д. 6) Анализируется значение переноса P0 из старшего разряда сумматора. Если P0=1, то результат положителен, S* =ïSï и ЗНS=ЗНА,переход к п. 9), иначе 7) P0=0 и, значит, результат суммирования отрицателен, т.е. модуль суммы получился в дополнительном (или обратном) коде S*=[- êS ê]д, ЗНS=ЗНВ. 8) Следует преобразовать дополнительный (или обратный) код модуля суммы в прямой код. 9) Запись [S]п в память. Выполним в соответствии с алгоритмом ПД пример алгебраического вычитания для двоичных чисел в форме с фиксированной запятой. - Имеется два числа А≠0 В≠0 êА ê< 1 ïВï< 1 Вычислить S=A-B; A= -.011011, В = -.110011; 1) Числа из памяти принимаются в АЛУ в прямом коде [A]п = 1.011011 [B]п = 1.110011 2) Определим действия над модулями DМ, пользуясь формулой (3.1). Так как D:=1 ЗНA:=1 ЗНB: =1, то DM: =1. 3) Вычитание модулей заменяем сложением в дополнительном коде. Находим [-êBê]д = [-êBê]о =. 0 0 1 1 0 0 +. 0 0 0 0 0 1 . 0 0 1 1 0 1 Далее вычисляем псевдосумму S* = êAêп + [-êBê]д S* =.0 1 1 0 1 1 + .0 0 1 1 0 1 .1 0 1 0 0 0 4) Как видим, P0 = 0, следовательно, S* < 0 и S*= [- êSê]д 5) Найдем прямой код модуля суммы по формуле êS êп = [ S* ] д = [S*]о =.0 1 0 1 1 1 + .0 0 0 0 0 1 êS êп =.0 1 1 0 0 0 6) Далее определим логическим путем по формуле (3.2) знак результата. Так как P0 = 0, то êА ê< êВ ê,, DM: = 1, ЗНА = 1. Следовательно ЗНS: = 0 Сумма в прямом коде [S] п = 0.011000; S =.011000 Алгоритм алгебраического сложения и вычитания типа ПО в значительной степени совпадает с рассмотренным в этом разделе алгоритмом ПД. Имеют место отличия в п 5, где при DM:= 1 вычитание выполняется не в дополнительном, а в обратном коде, а также в п. 8 при переходе к представлению отрицательного результата из обратного кода в прямой код. Оценим кратко основные характеристики алгоритма ПД. К достоинствам можно отнести хранение чисел в памяти в прямых кодах, благодаря чему отсутствует преобразование кодов при вводе и выводе чисел из ЭВМ. Кроме того, выполнение операции вычитание в дополнительном коде позволяет в АЛУ обойтись одним сумматором, что уменьшает оборудование по сравнению с алгоритмом ПП. Недостатком является необходимость преобразования отрицательного результата из дополнительного кода в прямой перед записью в память, что снижает быстродействие.
Дата добавления: 2015-05-09; Просмотров: 578; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |