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

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

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



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

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

підсумування

rn

- запис операції в загальному вигляді.

rn

,  - представлення значень операндів.

rn

Нехай . Сума запишеться у вигляді:

rn

rn

Для приведення масштабів чисел до єдиного значення масштаб більшого числа будемо вважати основним, а менша кількість будемо приводити до основного масштабу. Отже, перед підсумування мантісс мантісса меншого числа повинна бути зрушити вправо на кількість розрядів .

rn

Значення мантісси результату отримуємо як ,

rn

Порядок результату виходить як

rn

Зазвичай в практично використовуваних форматах з ПЗ мантісса представляється в прямому коді незалежно від знаку. Тому перед підсумування мантісс потрібно порівняти знаки операндів і при різних знаках виконувати віднімання. Для гарантованого отримання прямого коду мантісси вичитати випливає з більшою мантісси меншу. При цьому може знадобитися перестановка мантісс, і, відповідно, їх порядків.

rn

В результаті підсумовування значень мантісс и  можливе отримання ненормалізованного значення  : тобто або - переповнення розрядної сітки суми.

rn

У цьому випадку виконується нормалізація мантісси шляхом зсуву вліво або зсуву вправо на 1 розряд. Зсув повинен супроводжуватися відповідною корекцією порядку числа: при зсуві вліво на 1 розряд значення порядку повинно бути зменшено на 1: , а при зсуві вправо - збільшено на 1: . Також потрібно проконтролювати, аби скорегувати значення порядку не перевищила допустимі межі значень.

rn

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












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