Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Двійкова арифметика




 

Більшість мікропроцесорів мають команди додавання і віднімання двійкових чисел, деякі, крім того, мають команди множення та ділення.

Операції множення та додавання виконуються аналогічно до арифметики десяткових чисел (рисунок 2.3)

1 1 1 1 Переноси 1

1-й доданок +00111011 +59

2-й доданок 00101010 42

сума 1100101(2) 101(10)

а)

множене х1101 х13

множник 101 5

1-й проміжний добуток 1101 65(10)

2-й проміжний добуток 0000

3-й проміжний добуток 1101

Добуток 1000001(2)

б)

Рисунок 2.3 - Приклади виконання арифметичних операцій:

а) додавання; б) множення.

 

Однак, якщо потрібно використовувати числа зі знаком, застосовують спеціальний додатковий код, що суттєво спрощує апаратні засоби МП пристроїв.

На рисунку 2.4 приведене звичайне зображення регістра МП або комірки пам’яті поза МП.

 

 

Рисунок 2.4 - Зображення типового регістра МП чи комірки пам’яті:

а) розташування двійкових позицій; б) представлення додатних чисел нулем у знаковому біті; в) представлення від’ємного числа одиницею в знаковому біті.

 

Як видно з рисунка, всі від’ємні числа мають 1 в старшому розряді. На прикладі розглянемо основні етапи одержання додаткового коду від’ємного числа (наприклад -9).

 

Десяткове число   Етап 1 Запис десяткового числа без знака (9)
Двійкове число     0000 1001 Етап 2 Перетворення десяткового числа в двійковий код
Доповнення до 1 (інверсний код)     1111 0110 Етап 3 Одержати інверсний код двійкового числа заміною нулів одиницями, а одиниць - нулями
Доповнення до 2 (інверсний код)   +1 1111 0111 Етап 4 Додати одиницю до інверсного коду

 

Одержаний результат є додатковим кодом від’ємного числа -9, оскільки знаковий біт рівний одиниці.

Зворотна процедура одержання десяткового еквівалента числа 11110000, записаного у формі додаткового коду, буде такою:

Додатковий код   Етап 1 Запис додатково-го коду
Доповнення до 1   Етап 2 Одержання інверсного коду
+1 Етап 3 Додати 1
Двійкове число 00010000=16(10)    

 

Оскільки запис у додатковому коді вказує, що число від’ємне, то остаточно будемо мати: 1111 0000=-16.

МП не виконує прямого віднімання і оперує над додатковими кодами.

Нехай потрібно скласти десяткові числа +7 і -3. Процедура віднімання виконується у такий спосіб:

 

1-число +(+7) +00000111 Додатковий код
2-число (-3) 11111101 Додатковий код
Результат (+4)    

Знехтувати переповненням.

 

Старший біт є переповненням 8-розрядного регістра і ним нехтують. Одержана сума 0000 0100(2) еквівалентна +4(10).

Розглянемо ще один приклад, віднімання від числа 3 числа 8.

1-е число +(+3) +0000 0011
2-е число (-8) 1111 1000
Результат (-5) 1111 1011(2)=-5(10)

 

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

МП може оперувати також з числами, які представлені в BDC-коді, але при цьому процедури є складнішими. Наприклад, сумування чисел, представлених в двійково-десятковому коді 8421, виконується в два етапи. На першому етапі обчислюється попередня сума Sn, причому сумування відбувається за звичайними правилами двійкової арифметики, але з наступними уточненнями:

-якщо в і -тій тетраді Sni попередньої суми утворюється природній перенос, то він враховується в наступній (і +1)-й тетраді;

-якщо в і -тій тетраді Sni природного переносу немає, але Sni³10, то рахують, що є штучний перенос, і він знову враховується в (і +1)-й тетраді;

-при Sni<10 переносу немає.

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

-якщо Sni³10, тобто є штучний або природній перенос, то до неї додають число 6;

-утворений при цьому перенос не враховують.

Далі на прикладі природній перенос позначають 1П, штучний - 1Ш.

 

0,2098 0,0010 00001001 1000

+ +

0,37290,0011 0111 0010 1001.

0,5827 0,0101 1000 1100 0001 Попередня сума

+

0000 0000 0110 0110 корекція

0,0101 1000 0010 0111 сума

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...