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

 
 
 
«Модульность — фундаментальный аспект всех успешно работающих крупных систем.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Канали вводу-виводу на основі МК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 розряд з відповідною корекцією порядку результату:  .




Следующая статья >>
«Реалізація поділу в форматі ПЗ»