Мікропроцесори та мікроконтролери

 
 
 
«Компьютерная программа делает то, что вы приказали ей сделать, а не то, что вы хотели, чтобы она сделала»
Русский | Українська

На правах реклами:



Rambler's Top100 Рейтинг@Mail.ru
Мікропроцесори та мікроконтролери :: Канали вводу-виводу на основі МК51 :: Реалізація множення в форматі ПЗ

Реалізація множення в форматі ПЗ

Запис операції в загальному вигляді виглядає так:

rn

rn

Як видно з цього вислову, в порядку результуючого числа присутній зайве доданок "- sh ".

rn

Результат можна записати в узагальненому вигляді як:

rn

rn

Для операції множення мантісса результатів формується як , а порядок результату повинен формуватися таким чином :

rn

rn

Причому, щоб уникнути переповнення, обов'язково дії слід виконувати в зазначеній послідовності.

rn

Для множення мантісс можна застосувати алгоритм наступний алгоритм: послідовно з молодших розрядів аналізується черговий біт мантісси m 1 : якщо m 1 ( i ) = 1, то виконується . Після цього відбувається зсув mR вправо. Якщо m 1 ( i ) = 0, то підсумування не провадиться, а зсув виконувати потрібно.

rn

При обчисленні порядку eR може вийти значення, що перевищує . Це ситуація переповнення при множення, яка повинна контролюватися. Якщо eR <0, то це ситуація втрати порядку (дуже маленький результат), яку теж треба перевірити.

rn

Значення мантісси може вийти (оскільки кожна з мантісс виглядає як m = 1, f ), тому може знадобитися нормалізація мантісси результату шляхом зсуву вправо на 1 розряд з відповідною корекцією порядку результату:  .





Наступна стаття >>
«Реалізація поділу в форматі ПЗ»







При використанні будь-яких матеріалів з сайту зворотнє посилання на сайт Мікропроцесори та мікроконтролери обов'язкова.