5.3. Двійкова арифметика в мікропроцесорі.
При додаванні позитивних двійкових чисел, тобто, чисел із знаком +, додавання виконується в прямому коді числа. При цьому, як і при складанні десяткових чисел, при додаванні двох цифр які знаходяться в одній позиції і кожна з яких дорівнює 1, повинно бути виконано перенесення в 1 в старший розряд (вліво), так як сума дорівнює основі двійкової системи числення, а в цій позиції числа результату повенен бути записаний нуль. Наприклад,: 1001 Другий приклад: 1011
+ 1001 + 1011
= 1 0010 =1 0110 .
Результат додавання цифр крайніх правих розрядів обох чисел дорівнює нулю, а в сусідній розряд результату переноситься 1. Додавання двійкових одиниць цього (другого) розряду обох чисел з двійковою одиницею переносу дає в цьому ж розряді результату теж 1 (додаються три одиниці) і ще 1 переносу в старший лівий розряд.
Двійкові числа можуть бути і від”ємні. Як ми уже розглянули раніше,
для того, щоб їх відрізняти (як і в інших ситемамах числення) використовують
або знак (таке надання чисел називають їх прямим кодом), або величину числа
в формі доповнення (таке надання називають їх доповнюючим кодом).
Розглянемо виконання алгебраїчного додавання, тобто, коли треба враховувати знаки чисел. Його можна виконати за допомогою операції віднімання двійкових чисел, по аналогії розглянутим нами додаванням, при цьому використовують не перенесення 1 в старший розряд, а в разі потреби - її запозичення із нього. Але використання чисел у прямому коді (із знаком) значно ускладнює структуру МП, так як в цьому випадку операція віднімання повинна складатись із трьох мікрооперацій: 1) спочатку необхідно визначити, яке із двох чисел, що віднімаються, більше; 2) провести безпосереднє віднімання (із більшого відняти менше) і 3) – присвоїти отриманому результату знак більшого із віднімаємих чисел.
Тому в більшості мікропроцесорів в таких випадках використовується не просте (звичайне) віднімання, а віднімання як окремий тип додавання. Для цього число, яке віднімається, спочатку перетворюється в своє доповнення (доповнюючий код числа), а потім це доповнення додається до зменшуваного числа. Цей підхід використовується у всіх мікропроцесорах при потребі помножити на від’ємне число, яке теж переводять в код доповнення.
Розглянемо приклад, в якому виконаємо спочатку звичайне десяткове віднімання: 987-362=625. Тепер виконаємо операцію віднімання, як особивий тип додавання. Від’ємник (362) потрібно перетворити у своє доповнення і додати його до зменшуваного (987). Для числа 362 таким доповненням є 638, так як сума обох чисел дає число 1000. Тепер виконуємо додавання і отримуємо: 987+638= 625 і одиницю (тисяча) як стан перенесення. Наявність перенесення із крайнього лівого розряду показує на те, що результат – число позитивне і отримано не в виді доповнення, а в істиній формі.
Розглянемо випадок, коли результат число від’ємне: 362-987=-625.
Шукаємо доповнення до числа 987, яке дорівнює 013, і виконуємо додавання: 362+013=375. Але це ще не результат. Ми повинні проаналізувати стан перенесення із крайнього лівого розряду. Воно відсутнє, тобто, дорівнює нулю. Це показує, що результат – число від”ємне і крім цього знаходиться в формі доповнення (доповнюючому коді). Для того, щоб дістати істиний результат, треба знайти його доповнення, а воно дорівнює 625.
По аналогії з розглянутим нами доповненням в десятковій системі числення, ми повинні вирахувати доповнення від’ємника до 2.
Тепер скористуємось в двійковій арифметиці принципом доповнення до 2 і перевіримо достовірність результатів. Приклад віднімання:
1010(10 ) - 0110(6 ) = 0100 (4).
Для цього знаходимо до від’ємника 0110 доповнення, тобто, 1001+1=1010.
Тепер віднімання замінюємо на окремий вид додавання і отримуємо результат:
1010
+ 1010
= 1 0100 ( і 1 переносу). Результат – число 4 .
Поява переносу із крайнього лівого розряду в неіснуючий розряд свідчить, що результат – число позитивне і представлено в прямому коді (модулем).
Приклад, коли результат – число від’ємне: 0101 (5 ) - 1100 (12 ) =- 0111(7 ).
Доповнення до числа 1100 дорівнює: 0011 + 1 = 0100. Виконуємо додавання:
0101
+ 0100
= 1001. Як бачимо переносу не має. Останнє свідчить, що результат є від’ємне число і представлено в формі доповнення. Для отримання числа в пря-мому коді(або модулю), знову перетворюємо 1001 і дістаємо кінцевий результат: – ( 0110+1) = - 0111(7).
Ще два приклади: а) б)
011 0110 (54 ) - 1110101 (117 ) 1110101 (117 ) – 011 0110 (54 )
Доповнення: 0001010 +1 = 0001011 1001001 + 1 = 1001010
011 0110 (54 ) 1110101 (117 )
+ 000 1011 ( доповнення) + 1001010 (довнення)
= 100 0001 результат: = 1 0111111
Перенесення немає, число від’ємне Є перенесення, число в прямому коді
перетворюємо 0111110 +1= 0111111 перетворювати не потрібно
(2ст) 5 4 3 2 1 0
0 1 1 1 1 1 1 0111111 = +63
0+32+16+8+4+2+1= -63
- Київ нухт 2011
- 1. Загальні відомості про мікропроцесор та мікропроцесорну систему
- 1.1. Мікропроцесор. Загальні положення та визначення.
- 1.2. Архітектура мікропроцесора
- 1.3. Загальна структура мікропроцесора та його функціонування
- 1.4. Поняття про мікропроцесорну систему (мпс)
- 1.5. Поняття мікропроцесорного контролера
- 2. Загальні відомості пронадання та опрацювання інформації в мікропроцесонній техніці
- 2.1. Поняття інформації та дві форми її надання
- 2.2. Фізична суть цифрової інформації та елементи її реалізації
- 3. Основи алгебри логіки
- 3.1. Загальні положення
- 3.2. Опис та задання логічних функцій.
- 3.3. Основні логічні функції алгебри логіки
- 4. Способи надання інформації в мікропроцесорі
- 4.1. Поняття систем числення в мікропроцесорній техніці
- 4.2. Дівйкова система числення та основи переведення чисел між системами числення
- 4.2.1. Перетворення двійкових чисел в десяткові.
- 4.2.2. Перетворення десяткових чисел в двійкові
- 4.3. Вісімкова та шістнадцяткова системи числення
- 5. Структурні елементи мікропроцесора
- 5.1. Поняття машинного слова, регістрів
- 5.2. Формати надання чисел в мікропроцесорах
- 5.3. Двійкова арифметика в мікропроцесорі.
- 5.4. Двійково-десяткова арифметика.
- 5.4.1 Додавання двійково-десяткових чисел без знаку.
- 5.4.2 Додавання двійково-десяткових чисел із знаком.
- 5.5. Регістр стану (psw) мп та його призначення
- 5.6. Поняття шин (bus) мікропроцесора
- 5.7. Арифметично – логічний пристрій мікропроцесора
- 5.8. Пристій вводу – виводу (пвв).
- In 07н; ввести в акумулятор дані із порту 7;
- Поняття шинних драйверів.
- 5.9. Поняття інтерфейсу
- 5.10. Передавання інформації у послідовному коді.
- 5.11. Память мікропроцесорів та опереції з нею
- 5.12. Адресний простір мікропроцесора
- 5.13. Стек та його використовування
- 6. Мови програмування мпс
- 6.1. Рівні мов прграмування мп.
- 6.1.1. Базова мова мікропроцесора.
- 6.1.2. Мова “ асемблер” (другого рівня).
- 6.1.3. Мови третього рівня.
- 6.2. Основні правила запису програм на мові асемблера
- 6.3 Програмне забезпечення мікропроцесорнихсистем та його види
- 6.4. Способи адресації в мікропроцесорній системі
- 6.5. Формати команд мікропроцесорів
- Варіанти однобайтних команд:
- 6.6. Робочий цикл виконання програми мп
- 7. Однокристальний мікропроцесорний контролер кр1816ве51…….
- 7.1. Номеклатура та порівняльні характеристики мп
- 7.2. Структурна схема мікроконтролера кр1816ве51 та призначення складових
- Призначення виводів мп кр1816ве51
- Призначення виводів мп кр1816ве51
- 7.3. Функціонування мп кр1816ве51
- 7.4. Система команд мп кр1816ве51
- In port- те, що знаходиться в порту вводу заноситься в акумулятор а
- 8. Приклади програмування на асемблері кр1816ве51
- 8.1 Форомалізований підхід до розробки прикладної програми
- 8.2. Підрахунок імпульсів
- 8.3. Функції часової витримки
- 8.4. Функції вимірювання часових інтервалів
- 8.5. Перетворення кодів між системами числення
- 8.6. Аналого-цифрове перетворення
- 8.7 Приклад програмування технічної задачі
- 8.7.1. Постановка задачі
- 8.7.2. Аналіз задачі.
- 8.7.3. Розробка схеми пристрою та інтерфейсу.
- 8.7.4. Інженерна інтерпретація задачі
- 8.7.5. Розробка блок –схеми алгоритму
- 8.7.6 Розробка прикладної програми
- Програма sezam
- Контрольні запитання з курсу
- Література
- 1..Технічне та програмне забезпечення плк “ломіконт” Функціональні можливості плк “Ломіконт”.
- Технічні характеристики Ломіконта
- 2. Фізична сруктура контролера та його склад
- На рис 1.1 приведена фізична структура л-110 з основними модулями.
- Програмування плк “ломіконт”
- ПрК задає логіку управління конкретним технологічним об”єктом.
- Порядок виконання програми контролером:
- 05 Если умова а
- 07 Если умова в
- 11 Если умова с
- 00 Если в дв015
- 01 Тогда о кс102
- 02 Иначе в кс116
- 14 Тогда алг 031 (потім виконати алгоритм 031)
- 3. Приклад програмування на технологічній мові «Мікрол»
- Програмування алгоритму
- Безпоседньо програма
- 11 Тогда о кс100 - 26 тогда тс 1.0.0
- Бібліотека алгоритмів «ломіконту»