Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_ЛР_КА_2КСМ_2016-17.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
155.65 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХЕРСОНСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

Кафедра інформацiйних технологій

МЕТОДИЧНІ РЕКОМЕНДАЦІЇ

та контрольні завдання до виконання лабораторних робіт

з дисципліни „Комп’ютерна арифметика”

для студентів другого курсу

для напряму підготовки 6.050102 “Комп’ютерна інженерія”

за професійним спрямуванням “Комп’ютерні системи та мережі”

галузі знань 0501 “Інформатика та обчислювальна техніка”

факультету кібернетики та системної інженерії

Частина 6 (лабораторна робота 6)

Херсон – 2016 р.

Методичні рекомендації та контрольні завдання до виконання лабораторних робіт з дисципліни „Комп'ютерна арифметика” для студентів другого курсу напряму підготовки 6.050102 “Комп’ютерна інженерія” (за професійним спрямуванням “Комп’ютерні системи та мережі”) галузі знань 0501 “Інформатика та обчислювальна техніка”. Частина 6 (лабораторна робота 6).

Укладач: Веселовська Г.В., доцент кафедри інформаційних технологій ХНТУ, к.т.н., доцент, кількість сторінок 13.

Рецензент: Гучек П.Й., доцент кафедри інформаційних технологій ХНТУ, к.т.н., доцент.

Затверджено

на засіданні кафедри інформаційних технологій ХНТУ,

протокол № 1 від 30.08.2016 р.

Завідувач кафедри інформаційних технологій ХНТУ, д.т.н., професор, заслужений діяч науки і техніки України

____________________ В.Є.Ходаков

Відповідальний за випуск В.Є.Ходаков, завідувач кафедри інформаційних технологій ХНТУ, д.т.н., професор, заслужений діяч науки і техніки України.

Лабораторна робота 6

Тема: Виконання алгебрачної операцiї додавання чисел у рiзноманiтних кодах у сучасних комп`ютерах iз плаваючою комою в нормальнiй формi.

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

Основні знання й уміння:

- знати основні відомості про додавання чисел, представлених у нормальній формі;

- умiти здiйснювати основні етапи додавання чисел, представлених у нормальній формі.

1. Основні теоретичні відомості

Результат додавання двох чисел, А = apm(a) і В = bpm(b), представлених у формі з плаваючою комою (нормальній формі), теж повинен бути числом виду C = срm(c). У даному випадку, для доданків і результату має виконуватися рівність apm(a) + bpm(b) = срm(c).

Для додавання двох чисел у нормальній формі, що мають різні порядки, необхідно попередньо привести їх до спільного порядку, перетворивши один iз доданків та відповідну суму згідно наступного загального підходу: A + B = apm(сп) + b’pm(сп).

Надалi можна винести ступінь основи системи за дужки та виконати додавання мантис: A + B = apm(сп) + bpm(сп) = (a + b)рm(сп).

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

Таким чином, арифметичні дії над числами з плаваючою комою є наближеними.

При додаванні чисел у нормальній формі, можна виділити 4 етапи.

На першому етапі, зрівнюються порядки доданків: менший порядок приводиться до більшого; мантиса перетвореного числа зрушується праворуч на відповідну кількість розрядів.

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

На другому етапі, здiйснюється перетворення мантис доданків до одного з модифікованих кодів (додаткового чи оберненого).

На третьому етапі виконується додавання мантис за правилами додавання чисел iз фіксованою комою.

На четвертому етапі виконується нормалізація результатів (у разі потреби), отриманий результат переводиться до прямого коду, до нього приписується загальний порядок доданків і здiйснюється округлення мантиси результату.

Залежно від абсолютних величин мантис доданків, сума може бути нормалізованою, денормалізованою праворуч або денормалізованою ліворуч (із переповненням).

Співпадiння цифр знакового та старшого розряду мантиси суми свiдчить про порушення нормалізації (наявність денормалізації) праворуч.

При денормалізації результату додавання праворуч: якщо знаковий розряд містить 0, то мантиса зсувається ліворуч до появи в старшому розряді одиницi; якщо знаковий розряд містить 1, то мантиса зсувається ліворуч до появи в старшому розряді нуля; з порядку віднімається число одиниць, відповідне кiлькостi зсувів мантиси.

Розбіжність цифр у знакових розрядах суми свідчить про денормалізацію результату додавання ліворуч (переповнення), при якому: мантиса результату зсувається на один розряд праворуч; порядок збільшується на одиницю (оскiльки суму двох мантис може бути денормалізовано ліворуч не більше, ніж на один розряд).

Указаний порядок дій обумовлено тим, що кількість розрядів, на яку може порушитися нормалізація праворуч, нічим не обмежено.

Звичайно кількість зсувів ліворуч обмежують числом розрядів суматору, інакше процес зсування може виявитися нескінченним (якщо в результаті додавання мантис був отриманий нуль). Відповідно, при отриманні в результаті додавання мантис нуля, після виконання граничного числа зсувів, мантису результату представляють машинним нулем.

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

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

Таким чином, після складання мантис доданків із вирівняними порядками, слід: перевірити, чи не порушено нормалізацію ліворуч; якщо нормалізацію ліворуч порушено, то необхідно її відновити; якщо нормалізацію ліворуч не порушено, то необхідно перевірити, чи немає порушення нормалізації праворуч, і, в разі потреби, відновити її.

Приклад 1. Нехай задано:

, .

Необхiдно знайти [C]пр.

Для отримання результату, виконаємо наступнi дiї:

[A]’пр = 0 101 1 0010101,

[c]мд = [a]мд + [b]мд = 11,1101011 + 00,11001 = 00,1001111.

Оскiльки результат є нормалізованим, то робимо тільки його усікання:

[C]пр =0 101 0 10011.

Приклад 2. Нехай задано: [A]пр = 0 101 1 10101, [B]пр = 0 011 0 11001, [B]’пр = 0 101 0 0011001. Необхiдно знайти [C]пр

Для отримання результату, виконаємо наступнi дiї:

[c]мд = [a]мд + [b]мд = 11,0101100 + 00,0011001 = 11,1000101

Оскiльки результат був денормалізований праворуч на один розряд, то здiйснимо нормалізацію: [c]д = 1,000101.

Надалi виконаємо корекцію порядку m' = mсп – 1 = 100, переклад у прямий код та усікання мантиси результату [С]пр = 1,111011.

Остаточно отримаємо: [C]пр = 0 100 1 11101.

Приклад 3. Нехай задано: [A]пр = 0 101 1 10101, [B]пр = 0 100 1 11001, [B]’пр = 0 101 1 011001. Необхiдно знайти [C]пр

Для отримання результату, виконаємо наступнi дiї:

[c]мд = [a]мд + [b]мд = 11,010110 + 11,100111 = 10,111101.

Оскiльки результат є денормализованим ліворуч, то мантису числа зсуваємо на один розряд ([c]д = 1,0111101), переводимо число в прямий код і робимо усікання мантиси ([C]пр = 0 110 1 10000).

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

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

В основній пам'яті та в арифметико-логічному пристрої (АЛП) комп`ютеру порядки та мантиси чисел зберігаються в прямому коді.

Тому в АЛП мантиси з однаковими знаками завжди складаються як додатні числа, а результату надається знак першого операнду.

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

Якщо результат від додавання кодів мантис виходить у додатковому коді, то наприкінці виконання операції він переводиться в прямий код.

Переповнення, тобто денормализація ліворуч, усувається зрушенням мантиси праворуч на 4 розряди та збільшенням порядку на одиницю. Якщо у пiдсумку виникає переповнення порядку, то формується вимога переривання.

При нормалізації ліворуч, може з'явитися характеристика, менша за нуль (порядок, менший – 64). У такому випадку, також формується вимога переривання, а порядку та мантисі результату присвоюються значення 0.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]